HDFS架构详解
2017-04-20 15:33
113 查看
一、NameNode
1、NameNode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的
名字空间(namespace)以及客户端对文件的访问。
2、文件操作,NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟哪个DataNode联系,否则NameNode会成为系统的瓶颈。
3、副本存放在哪些DataNode上由NameNode来控制,根据全局情况做出块放置决定,读取文件时
NameNode尽量让用户先读取最近的副本,降低带块消耗和读取时延。
4、NameNode全权管理数据块的复制,它周期性地从集群中的每个DataNode接收心跳信号和块状态报告(BlockReport)。接收到心跳信号意味着该DataNode节点工作正常。块状态报告包含了一个该DataNode上所有数据块的列表。
二、DataNode
1、一个数据块在DataNode上以文件存储在磁盘中,数据块包括两个文件,一个是数据本身,一个是元数据包括数据块的长度、块数据的校验和,以及时间戳。
2、DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。
3、心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令,比如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
4、集群运行中可以安全加入和退出一些机器。
三、文件
1、文件切分成块,默认大小128M,以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认为3)。
2、NameNode是主节点,存储文件的元数据,比如:文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表以及块所在的DataNode等等。
3、DataNode在本地文件系统存储文件块数据,以及块数据的校验和。
4、可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。
5、HDFS中的内容不能修改,只能追加。
四、副本存放策略(官方说法)
对于常见情况,当复制因子为3时,HDFS的放置策略是将一个副本放在本地机架中的一个节点上,另一个在本地机架上的另一个节点上,最后在不同机架中的不同节点上。
该策略可以减少机架间的写入流量,这通常会提高写入性能。
机架故障的机会远小于节点故障的机会,此政策不影响数据的可靠性和可用性保证。
然而,它确实减少了在读取数据时使用的总体网络带宽,因为块仅放置在两个独特的机架中,而不是三个。
使用此策略,文件的副本不会均匀分布在机架中。三分之一的副本在一个节点上,三分之二的副本在一个机架上,另外三个是均匀分布在剩余的机架上。此策略可改善写入性能,而不会影响数据的可靠性或读取性能。
五、数据损坏(Corruption)处理
1、当DataNode读取block的时候,它会计算checksum。
2、如果计算后的checksum,与block创建时r 值不一样,说明该block已经损坏。
3、Client读取其他DataNode上的block。
4、NameNode标记该块已经损坏,然后复制block达到预期设置的文件副本数。
5、DataNode在其文件创建后三周验证其checksum。
六、HDFS Shell命令
1、调用文件系统(FS)Shell命令使用bin/hdfs dfs的形式。
2、所有的FS Shell命令使用URI路径作为参数。
3、URI格式是scheme://authority/path。HDFS的scheme是hdfs,对本地文件系统,scheme是file。其中,scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。
4、例发中:/parent/child可以表示成hdfs://namenode:namenodePort/parent/child,或者更简单的/parent/child(假设配置文 件是namenode:namenodePort)
5、大多数FS Shell命令的行为和对应的Linux Shell命令类似。
6、部分Shell命令练习,如下:
bin/hdfs dfs -Dfs.defaultFS=file:/// -ls /
hdfs
bin/hdfs dfsadmin -report
bin/hdfs dfsadmin
1、NameNode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的
名字空间(namespace)以及客户端对文件的访问。
2、文件操作,NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟哪个DataNode联系,否则NameNode会成为系统的瓶颈。
3、副本存放在哪些DataNode上由NameNode来控制,根据全局情况做出块放置决定,读取文件时
NameNode尽量让用户先读取最近的副本,降低带块消耗和读取时延。
4、NameNode全权管理数据块的复制,它周期性地从集群中的每个DataNode接收心跳信号和块状态报告(BlockReport)。接收到心跳信号意味着该DataNode节点工作正常。块状态报告包含了一个该DataNode上所有数据块的列表。
二、DataNode
1、一个数据块在DataNode上以文件存储在磁盘中,数据块包括两个文件,一个是数据本身,一个是元数据包括数据块的长度、块数据的校验和,以及时间戳。
2、DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。
3、心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令,比如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
4、集群运行中可以安全加入和退出一些机器。
三、文件
1、文件切分成块,默认大小128M,以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认为3)。
2、NameNode是主节点,存储文件的元数据,比如:文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表以及块所在的DataNode等等。
3、DataNode在本地文件系统存储文件块数据,以及块数据的校验和。
4、可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。
5、HDFS中的内容不能修改,只能追加。
四、副本存放策略(官方说法)
对于常见情况,当复制因子为3时,HDFS的放置策略是将一个副本放在本地机架中的一个节点上,另一个在本地机架上的另一个节点上,最后在不同机架中的不同节点上。
该策略可以减少机架间的写入流量,这通常会提高写入性能。
机架故障的机会远小于节点故障的机会,此政策不影响数据的可靠性和可用性保证。
然而,它确实减少了在读取数据时使用的总体网络带宽,因为块仅放置在两个独特的机架中,而不是三个。
使用此策略,文件的副本不会均匀分布在机架中。三分之一的副本在一个节点上,三分之二的副本在一个机架上,另外三个是均匀分布在剩余的机架上。此策略可改善写入性能,而不会影响数据的可靠性或读取性能。
五、数据损坏(Corruption)处理
1、当DataNode读取block的时候,它会计算checksum。
2、如果计算后的checksum,与block创建时r 值不一样,说明该block已经损坏。
3、Client读取其他DataNode上的block。
4、NameNode标记该块已经损坏,然后复制block达到预期设置的文件副本数。
5、DataNode在其文件创建后三周验证其checksum。
六、HDFS Shell命令
1、调用文件系统(FS)Shell命令使用bin/hdfs dfs的形式。
2、所有的FS Shell命令使用URI路径作为参数。
3、URI格式是scheme://authority/path。HDFS的scheme是hdfs,对本地文件系统,scheme是file。其中,scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。
4、例发中:/parent/child可以表示成hdfs://namenode:namenodePort/parent/child,或者更简单的/parent/child(假设配置文 件是namenode:namenodePort)
5、大多数FS Shell命令的行为和对应的Linux Shell命令类似。
6、部分Shell命令练习,如下:
bin/hdfs dfs -Dfs.defaultFS=file:/// -ls /
hdfs
bin/hdfs dfsadmin -report
bin/hdfs dfsadmin
相关文章推荐
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Thinking in BigDate(八)大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- 详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive
- 详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive
- 大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Thinking in BigData(八)大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- HDFS架构详解-非官档
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- 大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- 大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- HDFS追本溯源:体系架构详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- (2)hadoop学习——hdfs架构详解