Hadoop逻辑图:
1、NameNode(NN)
-
-NameNode主要功能:
接收客户端的读写服务 -
-NameNode保存metadate信息包括:
(metadate时元数据:除文件内容后的所有数据)
文件owership和permissions
文件包括哪些块
Block保存在哪几个DataNode(由DataNode启动时上报) -
-NameNode的metadate
信息在启动后会加载到内存中
metadate存储到磁盘文件名为“fsimage”
Block的位置信息不会保存到fsimage
edits记录对metadate的操作日志
2、DataNode (DN) -
-存储数据(Block)
-
-启动DN线程的时候会向NN汇报block信息
-
-通过NN发送心跳保持与其联系(默认3秒)
如果NN十分钟没有收到DN的心跳,则认为已经lost,并copy其上的block到其他的DN上
Block的副本防止策略
-第一个副本:放置在上传文件的DN中;如果是集群外提交,则随机挑选一台磁盘不太满,cpu不太忙的节点上。
-第二个副本:放置在于第一个副本不同的机架节点上。
-第三个副本:与第二个副本相同机架的节点上
-更多副本:随即节点
3、zookeeper(ZK)
Zookeeper来保证在Active NameNode失效时及时将Standby NameNode修改为Active状态。
4、DFSZKFailoverController (ZKFC)
ZKFC(失效检测控制)是Hadoop里的一个Zookeeper客户端,在每一个NameNode节点上都启动一个ZKFC进程,来监控NameNode的状态,并把NameNode的状态信息汇报给Zookeeper集群,其实就是在Zookeeper上创建了一个Znode节点,节点里保存了NameNode状态信息。当NameNode失效后,ZKFC检测到报告给Zookeeper,Zookeeper把对应的Znode删除掉,Standby ZKFC发现没有Active状态的NameNode时,就会用shell命令将自己监控的NameNode改为Active状态,并修改Znode上的数据。
Znode是个临时的节点,临时节点特征是客户端的连接断了后就会把znode删除,所以当ZKFC失效时,也会导致切换NameNode。
5、JournalNode(JN)
JournalNode是在MR2也就是Yarn中新加的,journalNode的作用是存放EditLog的,
在MR1中editlog是和fsimage存放在一起的然后SecondNamenode做定期合并,Yarn在这上面就不用SecondNamanode了.
6、ResourceManager(RM)
当应用程序对集群资源需求时,ResourceManager是Yarn集群主控节点,负责协调和管理整个集群(所有NodeManager)的资源。
7、NodeManager(NM)
NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。
8、HDFS
1)HDFS优点:
-高容错性
数据自动保存多个副本
副本丢失后,自动恢复
-适合批处理
移动计算而非数据
数据位置暴露给计算框架
-适合大数据处理
GB、TB、甚至PB级别的数据
百万规模以上的文件数量
10K+ 节点
-可构建在廉价机器上
通过多副本提高可靠性
提供了容错和恢复功能
2)HDFS缺点:
-低延迟数据访问
比如毫秒级
低延迟与高吞吐率
-小文件存取
占用NameDode大量内存
寻道时间超过读取时间
-并发写入,文件随机修改
一个文件只能有一个写者
仅支持append
来源:CSDN
作者:H . C . Y
链接:https://blog.csdn.net/HCY_2315/article/details/104575753