远程启动hadoop,ssh远程执行命令报错!hdfs命令不存在!
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命令不存在!相关推荐
- VS Code使用ssh远程连接服务器报错:过程试图写入的管道不存在
VS Code使用ssh远程连接服务器报错:过程试图写入的管道不存在 1. ssh.exe来源:由openssh改为git 普通的win10系统中一般使用的是原始的OpenSSH中的ssh,在最初遇到 ...
- linux中make命令报错,Linux命令make报错总结
Linux环境报错原因.解决方法记录(逐步总结) 1:/bin/sh: lex: command not found make[1]: Leaving directory `/home/ksj/tes ...
- linux输入ls命令报错,Linux命令基础2-ls命令
本文介绍的是linux中的ls命令,ls的单词是list files的缩写,意思的列出目录文件. 首先我们在admin用户的当前路径,新建一个test的文件夹,为了方便本文操作和介绍,创建了不同文件类 ...
- php++think命令报错,think命令行
参考:[https://www.kancloud.cn/uuling/tp5-console/366131](https://www.kancloud.cn/uuling/tp5-console/36 ...
- hive -e执行命令报错
执行hive -e命令报错 hive -e "alter table ods.article add partition (day='20201201') location 'hdfs:// ...
- 配置及执行spark、hadoop遇到的几个报错解决
报错1: 问题描述: 执行hadoop命令报错 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your pl ...
- ssh-keygen产生公钥与私钥对,及密钥分发,ssh远程执行常用命令方法,和如何防止SSH登录入侵或被破解
前言 SSH是安全的加密协议,用于远程连接Linux服务器,默认端口是22,安全协议版本是SSH2 . SSH原理 SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听 ...
- 【linux】ssh 远程执行命令自动输入密码方式
ssh 远程执行命令自动输入密码方式 场景: 由于多台机必须要登陆执行命令,需要使用密钥一台台登录,所以每次登陆机器的时候都需要手动输入域账号密码.密码太长且复杂,手动输入容易输错,故使用脚本来做这个 ...
- ssh远程执行多个命令
shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.一下介绍两种shell命令远程执行的方法. 前提条件: ...
最新文章
- mysql 5.1 互为主从,mysql数据库互为主从配置方法分享
- Flask == scoped_session
- 程序员四大禁忌(同样适合向梦想冲刺的所有人~~)
- Realtek网卡如何识别具体型号是8111B/8111C/8111D还是8111E???
- android 设置允许http请求_接口测试第6期:Fiddler设置开始捕获和停止捕获、HTTP报文结构,如何删除请求...
- jqGrid常用方法
- K近邻模型(k-NN)
- Spring Cloud Alibaba Sentinel之热点参数限流篇
- 绿色自适应网址发布页html源码
- jsp、html通过添加注册表打开本地应用
- 平板电脑安装软件_哪个便签可以横屏?平板电脑横屏便签软件推荐
- 我是如何从流水线工人到程序员?(2008-2018)
- PLC通讯实现-C#实现欧姆龙以太网通讯FINS(二)
- Unity 3D模型展示之webGL平台展现
- flutter clean
- 假设检验,显著性,置信水平,p值,点估计
- 实例:用C#.NET手把手教你做微信公众号开发(12)--带参数二维码裂变推广
- java多线程------锁
- 2.4G NRF24L01无线模块总结
- Matlab中set函数的使用