Hadoop基础

1,HDFS采用了主/从服务器的模式,即Master/Slave结构。Master是管理者,只负责管理和调度工作者。Slave是工作者,负责具体工作。
2,Master上运行NameNode,SecondaryNameNode,TaskTracker
Slave上运行DataNode和JobTracker
3,通常来说Master上运行唯一的NameNode,同时每一个Slave上运行一个DataNode
4,在HDFS中文件的存储、处理和备份的基本单位都是block,默认64M,单位Byte即(6410241024),在hdfs-site.xml中dfs.block.size下修改。
5,block默认副本数是3,在hdfs-site.xml中dfs.replication下修改。默认副本的存储方式,同一机架不同节点,不同机架各保存一份。
6,NameNode中主要存放元数据,主要分为三个部分:整个文件的目录树,文件名和blockID的映射关系,blockID所在的DataNode的信息。也就是说NameNode是DataNode的索引。
7,SecondaryNameNode第二名称节点(辅助名称节点),主要负责镜像的备份,日志与镜像的定期合并。SecondaryNameNode里存储的镜像的备份是NameNode的快照,如果NameNode发生故障,它可以代替,当然会有部分丢失。NameNode和SecondaryNameNode一定不在同一个节点上,也尽量不在同一个机器上。
NameNode仍然是单节点的,除了故障还是要手动切换。(zookeeper自动切换)
SecondaryNameNode的第二个作用是日志与镜像的定期合并,这样可以加快NameNode的启动速度。
8,DataNode是数据真正存在的地方,一般一个机器只运行一个DataNode。当DataNode启动时会遍历整个文件系统,产生一份块报告(blockreport)并汇报给NameNode
9,NameNode和DataNode之间通过心跳机制来通信。心跳机制是指NameNode周期性的(3秒)从DataNode接收心跳信号(heartbeat)和块报告(blockreport)。心跳信号让NameNode知道这个DataNode还在正常工作,块报告用来验证这个DataNode上的数据块的状态和映射信息。如果没能按时发送心跳信号,则这个DataNode被NameNode标记为宕机,不在发送IO请求。由于DataNode失效而造成的副本数下降,NameNode会检测出这些数据块的信息,并在合适的时间进行复制。
10,JobTracker对应于NameNode
TaskTracker对应于DataNode
TaskTracker也会给JobTracker发心跳信号

你可能感兴趣的:(Hadoop基础)