Hadoop中的七大节点的作用(HA with QJM)

泪湿孤枕 提交于 2020-03-01 02:51:13

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!