第9章 分布式文件系统及并行计算框架

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
写过程:
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
读过程:
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
读过程:
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
① Block的放置:一个Block会有三份备份。 ② 心跳检测:用心跳检测DataNode的健康状况,如果发现 问题就采取数据备份的方式来保证数据的安全性。 ③ 数据复制:使用HDFS的balancer命令配置一个Threshold 来平衡每一个DataNode磁盘利用率。 ④ 数据校验。采用CRC32作数据交验。 ⑤ 单个NameNode。如果单个NameNode失败,任务处理 信息将会记录在本地文件系统和远端的文件系统中。
9.1分布式文件系统HDFS
9.1.3 HDFS操作命令与编程接口
2、文件操作 • hadoop fs -put < local file > < hdfs file > //hdfs file的父目录一定要存在,否则命令不会执行 • hadoop fs -put < local file or dir >...< hdfs dir > //hdfs dir 一定要存在,否则命令不会执行 • hadoop fs -put - < hdsf file> //从键盘读取输入到hdfs file中,按Ctrl+D结束输入,hdfs file不能存在,否则命令不会执行
9.1分布式文件系统HDFS
9.1.3 HDFS操作命令与编程接口
1、HDFS的启动与关闭 启动输入:sbin/start-dfs.sh
9.1分布式文件系统HDFS
9.1.3 HDFS操作命令与编程接口
1、HDFS的启动与关闭 关闭输入:sbin/stop-dfs.sh
9.1分布式文件系统HDFS
9.1分布式文件系统HDFS
9.1.3 HDFS操作命令与编程接口
2、文件操作 • hadoop fs -moveFromLocal < local src > ... < hdfs dst >
//与put相类似,命令执行后源文件 local src 被删除,也可 以从从键盘读取输入到hdfs file中 • hadoop fs -copyFromLocal < local src > ... < hdfs dst >
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
2、相关概念 3)通信协议 • 作为一个分布式文件系统,HDFS中大部分的数据都是通
过网络进行传输的。为了保证传输的可靠性,HDFS采用 TCP协议作为底层的支撑协议。应用可以向NameNode主 动发起TCP连接。应用和NameNode交互的协议称为 Client协议,NameNode和DataNode交互的协议称为 DataNode协议。而用户和DataNode的交互是通过发起远 程过程调用(Remote Procedure Call,RPC)、并由 NameNode响应来完成的。另外,NameNode不会主动发 起远程过程调用请求。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
2、相关概念 4)客户端 • 严格来讲,客户端并不能算是HDFS的一部分,但是客户
端是用户和HDFS通信最常见也是最方便的渠道,而且部 署的HDFS都会提供客户端。 • 客户端为用户提供了一种可以通过与Linux中的Shell类似 的方式访问HDFS的数据。客户端支持最常见的操作如 (打开、读取、写入等);而且命令的格式也和Shell十分 相似,大大方便了程序员和管理员的操作。
//与put相类似,也可以从从键盘读取输入到hdfs file中
9.1分布式文件系统HDFS
9.1.3 HDFS操作命令与编程接口
2、文件操作 • hadoop fs -get < hdfs file > < local file or dir>
//local file不能和 hdfs file名字不能相同,否则会提示文件 已存在,没有重名的文件会复制到本地 • hadoop fs -get < hdfs file or dir > ... < local dir >
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
⑥ 数据管道性的写入。当客户端要写入文件到DataNode上, 首先会读取一个Block然后写到第一个DataNode上,然后由 第一个DataNode传递到备份的DataNode上,一直到所有需 要写入这个Block的DataNode都成功写入,客户端才会开始 写下一个Block。 ⑦ 安全模式。分布式文件系统启动时会首先进入安全模式, 当分布式文件系统处于安全模式时,文件系统中的内容不允 许修改和删除,直到安全模式结束。安全模式主要是为了在 系统启动的时候检查各个DataNode上数据块的有效性,同 时根据策略进行必要的复制或者删除部分数据块。
西安电子科技大学出版社
第9章 分布式文件系统及并行计算框架
9wenku.baidu.com1 分布式文件系统HDFS 9.2 并行计算框架MapReduce 实验 HDFS的文件操作命令及API编程 实验 Eclipse下的MapReduce编程
本章重点及难点
重点: • HDFS结构及文件访问 • MapReduce原理 • 实验 难点: • 实验
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
HDFS的基本文件访问过程是: • 1)首先,用户的应用程序通过HDFS的客户端程序将文
件名发送至NameNode。 • 2)NameNode接收到文件名之后,在HDFS目录中检索
文件名对应的数据块,再根据数据块信息找到保存数据块 的DataNode地址,将这些地址回送给客户端。 • 3)客户端接收到这些DataNode地址之后,与这些 DataNode并行地进行数据传输操作,同时将操作结果的 相关日志(比如是否成功,修改后的数据块信息等)提交 到NameNode。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
• DataNode是文件系统的工作节点,它们根据客户端或者 是NameNode的调度来存储和检索数据,并且定期向 Namenode发送它们所存储的块(block)的列表。集群中 的每个服务器都运行一个DataNode后台程序,这个后台 程序负责把HDFS数据块读写到本地的文件系统。当需要 通过客户端读/写某个数据时,先由NameNode告诉客户 端去哪个DataNode进行具体的读/写操作,然后,客户端 直接与这个DataNode服务器上的后台程序进行通信,并 且对相关的数据块进行读/写操作。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
2、相关概念 3)通信协议 • 作为一个分布式文件系统,HDFS中大部分的数据都是通
过网络进行传输的。为了保证传输的可靠性,HDFS采用 TCP协议作为底层的支撑协议。应用可以向NameNode主 动发起TCP连接。应用和NameNode交互的协议称为 Client协议,NameNode和DataNode交互的协议称为 DataNode协议。而用户和DataNode的交互是通过发起远 程过程调用(Remote Procedure Call,RPC)、并由 NameNode响应来完成的。另外,NameNode不会主动发 起远程过程调用请求。
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
• HDFS通过三个重要角色:NameNode、DataNode、 Client来进行文件系统的管理。
1)文件写入 ① Client向NameNode发起文件写入的请求。 ② NameNode根据文件大小和文件块配置情况,返回给 Client它所管理部分DataNode的信息。 ③ Client将文件划分为多个Block,根据DataNode的地址信 息,按顺序写入到每一个DataNode块中。
9.1.3 HDFS操作命令与编程接口
2、文件操作 命令基本格式:
• hadoop fs -cmd < args >
9.1分布式文件系统HDFS
9.1.3 HDFS操作命令与编程接口
2、文件操作 • hadoop fs -ls //列出hdfs文件系统根目录下的目录和文件 • hadoop fs -ls -R // 列出hdfs文件系统所有的目录和文件
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
2)文件读取 ① Client向NameNode发起文件读取的请求。 ② NameNode返回文件存储的DataNode的信息。 ③ Client读取文件信息。 3)文件块(Block)复制 ① NameNode发现部分文件的block不符合最小复制数的要 求或者部分DataNode失效。 ② 通知DataNode相互复制Block。 ③ DataNode开始直接相互复制。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
1、体系结构
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问 • NameNode 管理者文件系统的Namespace。它
通过Namespace 镜像文件(Namespace Image) 和操作日志文件(Edit Log)管理文件系统树 (FileSystem tree)以及文件树中所有的文件和 文件夹的元数据(Metadata)。Namenode记录 着每个文件中各个块所在的数据节点的位置信息, 但是它并不持久化存储这些信息,因为这些信息 会在系统启动时从数据节点重建。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
2、相关概念 2)命名空间 • HDFS中的文件命名遵循了传统的“目录/子目录/文件”
格式。通过命令行或者是API可以创建目录,并且将文件 保存在目录中;也可以对文件进行创建、删除、重命名操 作。命名空间由NameNode管理,所有对命名空间的改动 (包括创建、删除、重命名,或是改变属性等,但是不包 括打开、读取、写入数据)都会被HDFS记录下来。 • HDFS允许用户配置文件在HDFS上保存的副本数量,保 存的副本数称作“副本因子”(Replication Factor),这 个信息也保存在NameNode中。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
2、相关概念 1)数据块Block • 为了提高硬盘的效率,文件系统中最小的数据读写单位不
是字节,而是一个更大的概念——数据块。HDFS数据块 的默认大小是64MB,而且在不少实际部署中,HDFS的 数据块甚至会被设置成128MB甚至更多。 • 将数据块设置成这么大的原因是减少寻址开销的时间。
9.1分布式文件系统HDFS
9.1.1 HDFS的结构及文件访问
HDFS的基本文件访问过程是: • 1)首先,用户的应用程序通过HDFS的客户端程序将文
件名发送至NameNode。 • 2)NameNode接收到文件名之后,在HDFS目录中检索
文件名对应的数据块,再根据数据块信息找到保存数据块 的DataNode地址,将这些地址回送给客户端。 • 3)客户端接收到这些DataNode地址之后,与这些 DataNode并行地进行数据传输操作,同时将操作结果的 相关日志(比如是否成功,修改后的数据块信息等)提交 到NameNode。
9.1分布式文件系统HDFS
9.1.2 HDFS的数据管理
⑥ 数据管道性的写入。当客户端要写入文件到DataNode上, 首先会读取一个Block然后写到第一个DataNode上,然后由 第一个DataNode传递到备份的DataNode上,一直到所有需 要写入这个Block的DataNode都成功写入,客户端才会开始 写下一个Block。 ⑦ 安全模式。分布式文件系统启动时会首先进入安全模式, 当分布式文件系统处于安全模式时,文件系统中的内容不允 许修改和删除,直到安全模式结束。安全模式主要是为了在 系统启动的时候检查各个DataNode上数据块的有效性,同 时根据策略进行必要的复制或者删除部分数据块。
相关文档
最新文档