大数据_hadoop_分布式文件系统.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大数据_hadoop_分布式文件系统

Hadoop分布式文件系统 ——HDFS详解;Hadoop的文件系统 HDFS简介 HDFS体系结构 HDFS的基本操作 HDFS常用Java API详解 HDFS中的读写数据流 HDFS命令详解;1.何为分布式文件系统?;一、Hadoop文件系统;(1)Hadoop提供了许多文件系统的接口,用户可以选取合适的文件系统实现交互。例如,可以通过命令行接口和HDFS 文件系统进行交互: 比如,列出本地文件系统根目录下的文件,执行以下shell命令即可: hadoop fs -ls file:/// (2)运行的MapReduce程序可以访问以上任何文件系统,但是在处理大数据集时,需要选择一个具有数据本地化优化的分布式文件系统,常用的如HDFS或KFS。 注:Hadoop在存储有输入数据(如,HDFS中的数据)的节点上运行map任务时可以获得最佳性能,这就是数据本地化优化。;2.Hadoop文件系统的接口 Hadoop 使用Java编写的,通过 Java API 可以调用所有Hadoop 文件系统的交互操作。 例如,HDFS的命令解释器就是一个Java应用,它使用Java的FileSystem类来提供文件系统操作。 (1)Thrift Hadoop 文件系统的接口是通过Java API 提供的,所以其他非Java 应用程序访问 Hadoop 文件系统会比较麻烦。 Thrift分类单元中的 Thrift API 通过把 Hadoop 文件系统包装一个Apache Thrift 服务来弥补这个不足,从而使任何具有Thrift 绑定(binding)的语言都能轻松地与Hadoop 文件系统(比如HDFS)进行交互。;要Thrift API,首先要运行提供Thrift服务的Java服务器,并以代理的方式访问Hadoop文件系统。 注:Thrift API 包含很多其他语言生成的stub(存根),包括C++、Perl、PHP、Python等。 (2)C语言 Hadoop提供了一个C语言库—libhdfs,该语言库是Java FileSystem接口类的一个镜像,它被编写成访问HDFS的C语言库。 (3)FUSE 用户空间文件系统(Filesystem in Userspace,FUSE)允许文件系统整合为一个Unix文件系统并在用户空间中执行。;通过使用Hadoop的Fuse-DFS 功能模块,任意一个Hadoop文件系统(一般为HDFS)都可以作为一个标准文件系统进行挂载;便可以使用UNIX的工具(如,ls和cat)与该文件系统交互,还可以通过任意一种编程语言使用POSIX库来访问文件系统。 注:Fuse—DFS是用C语言实现的,可以使用libhdfs 作为HDFS 的接口。 (4)WebDAV WebDAV是???系列支持编辑和更新文件的HTTP的扩展。 在大部分操作系统中,WebDAV共享都可以作为文件系统进行挂载,因此通过WebDAV向外提供HDFS(或其他Hadoop文件系统)的访问接口,可以将HDFS作为一个标准的文件系统进行访问。;(5)HDFS特定的接口 HTTP:HDFS定义了一个只读接口,它以HTTP方式检索目录列表和数据。 嵌入在namenode运行在50070端口的Web服务器,以XML格式提供目录列表服务;而嵌入在datenode运行在50075端口的Web服务器,提供文件数据传输服务。 用户可以利用HTTP协议编写从不同版本的 Hadoop HDFS 集群中读取数据的客户端。HFTP FileSystem就是其中一种: 它是一个通过HTTP协议与 HDFS交互的Hadoop文件系统接口。 FTP HDFS还有一个FTP接口,该接口允许使用FTP协议与HDFS进行交互,即使用FTP客户端和 HDFS进行交互。;二、HDFS简介;(3)运行于廉价的商用机器集群上 Hadoop设计对硬件需求比较低,只需运行在廉价的商用硬件集群上。但这也意味着对于庞大的集群,节点出现故障的概率非常高,因此在设计HDFS是需要充分考虑数据的可靠性、安全性和高可用性。 (4)硬件故障 硬件故障是常态,而不是异常。整个HDFS系统由大量存储着文件数据片断的服务器组成,每个组成部分都很可能出现故障,因此,故障的检测和自动快速恢复是HDFS一个很核心的设计目标。 3.HDFS的局限性: (1)不适合低延迟数据访问;HDFS是为了处理大型数据集分析任务,主要是为了达到高的数据吞吐量而设计的,这就要求可能以高延迟为代价。 注:对于低延迟的访问需求,HBase是更好地选择。 (2)无法高效存储大量小文件 Hadoop中由namenode负责将文件系统中的元数据存储在内存中,因此文件系统存储的文件总数受限于namenode的内存容量。当存储大量的小

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档