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

#!/usr/bin/env bash
HADOOP_HOME=/root/hadoop/hadoop-3.3.2
if [ $# -lt 1 ]
thenecho "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

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

  1. VS Code使用ssh远程连接服务器报错:过程试图写入的管道不存在

    VS Code使用ssh远程连接服务器报错:过程试图写入的管道不存在 1. ssh.exe来源:由openssh改为git 普通的win10系统中一般使用的是原始的OpenSSH中的ssh,在最初遇到 ...

  2. linux中make命令报错,Linux命令make报错总结

    Linux环境报错原因.解决方法记录(逐步总结) 1:/bin/sh: lex: command not found make[1]: Leaving directory `/home/ksj/tes ...

  3. linux输入ls命令报错,Linux命令基础2-ls命令

    本文介绍的是linux中的ls命令,ls的单词是list files的缩写,意思的列出目录文件. 首先我们在admin用户的当前路径,新建一个test的文件夹,为了方便本文操作和介绍,创建了不同文件类 ...

  4. php++think命令报错,think命令行

    参考:[https://www.kancloud.cn/uuling/tp5-console/366131](https://www.kancloud.cn/uuling/tp5-console/36 ...

  5. hive -e执行命令报错

    执行hive -e命令报错 hive -e "alter table ods.article add partition (day='20201201') location 'hdfs:// ...

  6. 配置及执行spark、hadoop遇到的几个报错解决

    报错1: 问题描述: 执行hadoop命令报错 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your pl ...

  7. ssh-keygen产生公钥与私钥对,及密钥分发,ssh远程执行常用命令方法,和如何防止SSH登录入侵或被破解

    前言 SSH是安全的加密协议,用于远程连接Linux服务器,默认端口是22,安全协议版本是SSH2 . SSH原理 SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听 ...

  8. 【linux】ssh 远程执行命令自动输入密码方式

    ssh 远程执行命令自动输入密码方式 场景: 由于多台机必须要登陆执行命令,需要使用密钥一台台登录,所以每次登陆机器的时候都需要手动输入域账号密码.密码太长且复杂,手动输入容易输错,故使用脚本来做这个 ...

  9. ssh远程执行多个命令

    shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.一下介绍两种shell命令远程执行的方法. 前提条件: ...

最新文章

  1. mysql 5.1 互为主从,mysql数据库互为主从配置方法分享
  2. Flask == scoped_session
  3. 程序员四大禁忌(同样适合向梦想冲刺的所有人~~)
  4. Realtek网卡如何识别具体型号是8111B/8111C/8111D还是8111E???
  5. android 设置允许http请求_接口测试第6期:Fiddler设置开始捕获和停止捕获、HTTP报文结构,如何删除请求...
  6. jqGrid常用方法
  7. K近邻模型(k-NN)
  8. Spring Cloud Alibaba Sentinel之热点参数限流篇
  9. 绿色自适应网址发布页html源码
  10. jsp、html通过添加注册表打开本地应用
  11. 平板电脑安装软件_哪个便签可以横屏?平板电脑横屏便签软件推荐
  12. 我是如何从流水线工人到程序员?(2008-2018)
  13. PLC通讯实现-C#实现欧姆龙以太网通讯FINS(二)
  14. Unity 3D模型展示之webGL平台展现
  15. flutter clean
  16. 假设检验,显著性,置信水平,p值,点估计
  17. 实例:用C#.NET手把手教你做微信公众号开发(12)--带参数二维码裂变推广
  18. java多线程------锁
  19. 2.4G NRF24L01无线模块总结
  20. Matlab中set函数的使用

热门文章

  1. 云设计模式和Service Mesh
  2. 币圈×互联网第一男神天团,昨日成团
  3. web前端开发入门视频教程 前端架构师课程
  4. JS获取当前时间(年月日时分秒)
  5. 向量内积、矩阵内积以及其性质
  6. Anacanda使用教程五(安装CUDA)
  7. java基于Springboot+vue的健身房课程预约平台 element
  8. 屌丝向女神示爱,不料女神会Java,微微改动代码,把屌丝憋死了…
  9. mysql数据库怎么插入时间_给mysql数据库插入当前时间
  10. Android中手势滑动监听简单实现