远程启动hadoop,ssh远程执行命令报错!hdfs命令不存在!

1、任务:远程启动hadoop集群。

#!/usr/bin/env bash
HADOOP_HOME=/root/hadoop/hadoop-3.3.2
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit;
#未输入参数时执行
fi
case $1 in
"start")
                echo "==========启动hadoop集群=========="

                echo "--------- 启动 hadoop1 ---------"
                ssh hadoop1 "$HADOOP_HOME/sbin/start-all.sh"

                echo "--------- 启动 hadoop2 ---------"
                ssh root@hadoop2 "hdfs --daemon start datanode"
                ssh root@hadoop2 "yarn --daemon start nodemanager"
                echo "--------- 启动 hadoop3 ---------"
                ssh root@hadoop3 "hdfs --daemon start datanode"
                ssh root@hadoop3 "yarn --daemon start nodemanager"
				echo "--------- 正在查看启动情况 ---------"
                sleep 5;
                echo "--------- hadoop1启动情况 ---------如下:"
                ssh hadoop1 "jps";
                sleep 1;
				echo "--------- hadoop2启动情况 ---------如下:"
                ssh hadoop2 "jps";
                sleep 1;
				echo "--------- hadoop3启动情况 ---------如下:"
                ssh hadoop3 "jps";
;;
"stop")
    echo "==========关闭hadoop集群=========="

    echo "--------- 关闭 historyserver ---------"
    ssh hadoop1 "$HADOOP_HOME/sbin/stop-all.sh"

    echo "--------- 关闭 yarn ---------"
    ssh root@hadoop2 "hdfs --daemon stop datanode"
    ssh root@hadoop2 "yarn --daemon stop nodemanager"
   echo "--------- 关闭 hdfs ---------"
    ssh root@hadoop3 "hdfs --daemon stop datanode"
    ssh root@hadoop3 "yarn --daemon stop nodemanager"
	
	echo "--------- 正在查看关闭情况 ---------"
	sleep 5;
	echo "--------- hadoop1关闭情况 ---------如下:"
	ssh hadoop1 "jps";
	sleep 1;
	echo "--------- hadoop2关闭情况 ---------如下:"
	ssh hadoop2 "jps";
	sleep 1;
	echo "--------- hadoop3关闭情况 ---------如下:"
	ssh hadoop3 "jps";
;;
*)
    echo "Input Args Error..."
#当输入的参数不为start或stop时执行
;;
esac
                               

2、执行脚本报错:
在这里插入图片描述
ssh hadoop1 “$HADOOP_HOME/sbin/stop-all.sh” 这个脚本能够正常执行。。
下面的执行失败:
ssh root@hadoop2 “hdfs --daemon stop datanode”
ssh root@hadoop2 “yarn --daemon stop nodemanager”

本机执行是没有问题的。。。。。
一看就是环境变量的原因。。。。。。。

解决方式:

上网查了一遍,发现是ssh远程执行命令时加载的环境文件是/.bashrc.所以解决的思路就是在/.bashrc中添加需要的环境变量即可。

在这里插入图片描述
1、打开/etc/profile将hadoop的环境变量拷贝到~/.bashrc中。
2、如下图:
在这里插入图片描述
3、试完好使。。。。。。。

借鉴了下面的同学博客:
http://t.zoukankan.com/tele-share-p-9581226.html
https://blog.csdn.net/whitehack/article/details/51705889

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值