修改hadoop集群规划时出现“-bash start-yarn.sh command not found”

修改hadoop集群规划时出现“-bash start-yarn.sh command not found”

背景说明

前段时间配置了一组3节点的hadoop集群,当时采用了先配置一个、然后SCP拷贝的方式。
当时的配置仅包含了hdfs和yarn部分,其中“bigdata121”机器为NameNode、SeconderyNameNode和ResourceManager,而“bigdata122”、“bigdata123”为DataNode和NodeManager。

问题出现

考虑到集群规划的合理性,打算将ResourceManager改到bigdata122机器上,基本操作都没有问题,仅需修改所有节点**(注意是所有节点)**的 $HADOOP_HOME/etc/hadoop/yarn-site.xml,将yarn.resourcemanager.hostname 的值由 bigdata121 改为 bigdata122。

>>> cat yarn-site.xml

<?xml version="1.0"?>

## 省略前面内容 

<configuration>

<!-- Site specific YARN configuration properties -->

<!--配置Yarn的节点-->
  <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bigdata122</value>       # 就是改这里!
  </property>
  
## 省略后面内容 

</configuration>

按理来说,修改完xml,再关闭集群后,应该就能从122 机器上通过start-yarn.sh 命令来启动 yarn 了。
但是,现实显然又比理想骨感了一次:

>>> start-yarn.sh
-bash: start-yarn.sh: command not found

新RM无法启动yarn也就算了,更气人的是:
在原来的 RM 也就是 121 机器上使用该命令时,却依然能够启动 yarn!

问题剖析

冷静下来,仔细观察后,还是发现了一些不同:
通过121启动的yarn,只是在121和123机器上启动了 NodeManager!
如此看来,修改RM的操作应该是没有问题,应该是其他方面出了纰漏。

经过翻阅前面配置集群时的笔记,终于找到了答案:

没有在 ~/.bash_profile 中添加 环境变量 $HADOOP_HOME !

再次老实交代我当时的配置过程:

1.在121机器配置 JAVA_HOME 后,克隆了两台机器作为NN/DM,即122、123;

2.在121机器配置 $HADOOP_HOME ;

3.在121机器配置/opt/moudle/hadoop-2.7.3/etc/hadoop下的各种site文件,然后通过SCP拷贝方式同步到 2 台克隆机器。

这样一捋就清楚了,唯独中间的 配置 $HADOOP_HOME 环节,仅针对了 121 机器,也就导致只有121机器能够识别 star-xxx 系列命令。

解决

只需要在 122 机器上同样修改 ~/.bash_profile 即可。
vi 编辑,增加如下内容:

HADOOP_HOME=/opt/moudle/hadoop-2.7.3
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

然后,source 使对环境变量的更改生效:

>>> source ~/.bash_profile

然后,再尝试 start-yarn.sh 命令,已能成功运行,至此问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值