Journal Node

两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。

Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作。在hadoop1时代,只有一个NameNode。如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了。这是hadoop1中的单点问题,也是hadoop1不可靠的表现,如图1所示。hadoop2就解决了这个问题。

hadoop2.2.0(HA)中HDFS的高可靠指的是可以同时启动2个NameNode。其中一个处于工作状态,另一个处于随时待命状态。这样,当一个NameNode所在的服务器宕机时,可以在数据不丢失的情况下,手工或者自动切换到另一个NameNode提供服务。

这些NameNode之间通过共享数据,保证数据的状态一致。多个NameNode之间共享数据,可以通过Nnetwork File System或者Quorum Journal Node。前者是通过linux共享的文件系统,属于操作系统的配置;后者是hadoop自身的东西,属于软件的配置。

我们这里讲述使用Quorum Journal Node的配置方式,方式是手工切换。

集群启动时,可以同时启动2个NameNode。这些NameNode只有一个是active的,另一个属于standby状态。active状态意味着提供服务,standby状态意味着处于休眠状态,只进行数据同步,时刻准备着提供服务,

ResourceManager (RM)

是一个仲裁整个集群可用资源的主节点,帮助YARN系统管理其上的分布式应用。它同NodeManagers(NMs) 和ApplicationMasters(AMs)一起工作。

1、NodeManagers 从ResourceManager获取指令并管理本节点的可用资源

2、ApplicationMasters 的职责是从ResourceManager谈判资源,并为NodeManagers启动容器。

yarn启动

Hadoop yarn安装
启动:node06:

1 zookeeper启动zkServer.sh start
2 start-dfs.sh
如果nn 和 nn2没有启动,需要在node06,node07分别手动启动:
hadoop-daemon.sh start namenode
3 start-yarn.sh (启动nodemanager)
4 在08,09节点分别执行脚本: yarn-daemon.sh start resourcemanager

hadoop-daemon.sh start journalnode
UI访问: ip:8088

停止:
node06: stop-dfs.sh
node06: stop-yarn.sh (停止nodemanager):
node07,node08: yarn-daemon.sh stop resourcemanager (停止resourcemanager)

./spark-submit --master yarn --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.0-hadoop2.6.0.jar 10000
Hadoop yarn安装

相关文章: