测试Hadoop的启动顺序及遇到的问题

在Ubuntu 14.04的测试环境中,搭建了一个包含Hadoop HA的集群,包括1个Namenode、1个Secondary Namenode、3个Datanodes和2个ResourceManager。Zookeeper部署在Datanode节点上。启动顺序为:Namenode、Secondary Namenode、Datanodes、Journalnodes、ZK Failover Controllers、ResourceManager和NodeManager。遇到的问题是ResourceManager在HA配置下无法自动启动,报找不到有效RM_HA_ID的错误。解决方法是直接在有问题的ResourceManager节点上手动启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试环境:

一个namenode

一个secondary namenode,以实现namenode的HA

三个datanode节点

两个RM,以实现Resource Manager的HA

共部署了7个虚拟机,操作系统是Ubuntu 14. 所有虚拟机是在本机加载,所以为了节省资源,Zookeeper分别部署在三个datanode节点上。

 

Hadoop的sbin目录下的start-all.sh已经不建议使用,代替的是单独启动各个命令,比如start-dfs.sh, start-yarn.sh. 但是从学习的角度看,使用start-all.sh,可以直接看出正确的启动顺序。

运行start-dfs.sh:

- namenode

- secondary namenode (HA node)

- all datanodes

- all journalnodes

- ZK Failover Controllers (on namenode and sceondary node)

 

 运行start-yarn.sh

- resource manager

- all nodemanager

 

注意:我的测试环境里Zookeeper是单独配置的,所以在上面两个命令启动前启动,找到Zookeeper的安装目录/bin,运行./zkServer.sh start.

 

另外,碰到一个奇怪的问题,因为RM是配置了HA,并且放在单独的两台机器上,第一次配置好了以后,在namenode下,如果启动yarn,比如start-yarn.sh,resource manager能够自动启动起来,但只启动一个,网上有资料说这个是bug。但是过了一段时间后,resource manager通过上述方式完全启动不起来,查看namenode的log,会报下面的异常:

2016-05-02 02:38:47,523 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Invalid configuration! Can not find valid RM_HA_ID. None of yarn.resourcemanager.address.rm1 yarn.resourcemanager.address.rm2  are matching the local address OR yarn.resourcemanager.ha.id is not specified in HA Configuration

 

解决办法也比较简单,直接登录到Resource Manager所在的机器上,单独启动RM即可,使用的命令如下:

yarn-daemon.sh start resourcemanager

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值