hadoop集群启动和关闭shell脚本

来源:互联网 发布:mac顶部菜单栏设置 编辑:程序博客网 时间:2024/04/28 18:31

说明:
1、先启动zookeeper,再启动hdfs,再启动yarn。
2、user为hadoop使用的linux用户。
3、采用SSH登陆到其他机器执行脚本的方式,且配置了ssh免密钥登陆。

start-hadoop.sh

user=hadoopecho start zookeeper...for zk in master05 master06 master07dossh $user@$zk "source /etc/profile;/master/env/zookeeper/bin/zkServer.sh start"doneecho zookeeper startedecho start hdfs...hdfs=master01ssh $user@$hdfs "source /etc/profile;/master/env/hadoop/sbin/start-dfs.sh"echo hdfs startedecho start yarn...yarn=master03rsm=master04ssh $user@$yarn "source /etc/profile;/master/env/hadoop/sbin/start-yarn.sh"ssh $user@$rsm "source /etc/profile;/master/env/hadoop/sbin/yarn-daemon.sh start resourcemanager"echo yarn started

stop-hadoop.sh

user=hadoopecho stop zookeeper...for zk in master05 master06 master07dossh $user@$zk "source /etc/profile;/master/env/zookeeper/bin/zkServer.sh stop"doneecho zookeeper stopedecho stop hdfs...hdfs=master01ssh $user@$hdfs "source /etc/profile;/master/env/hadoop/sbin/stop-dfs.sh"echo hdfs stopedecho stop yarn...yarn=master03rsm=master04ssh $user@$yarn "source /etc/profile;/master/env/hadoop/sbin/stop-yarn.sh"ssh $user@$rsm "source /etc/profile;/master/env/hadoop/sbin/yarn-daemon.sh stop resourcemanager"echo yarn stoped

补充:
交互式shell和非交互式shell、登录shell和非登录shell区别
在登录shell里,环境信息需要读取/etc/profile和~ /.bash_profile, ~/.bash_login, and ~/.profile按顺序最先的一个,并执行其中的命令。除非被 –noprofile选项禁止了; 在非登录shell里,环境信息只读取 /etc/bash.bashrc和~/.bashrc
手工执行是属于登陆shell,脚本执行数据非登陆shell,而我的linux环境配置中只对/etc/profile进行了jdk1.7等环境的配置,所以脚本执行/usr/local/zookeeper/bin/zkServer.sh start 启动zookeeper失败了
解决方法(下面3个方法任选1):
1、脚本代码中添加“source /etc/profile;” 改为:ssh crxy$i “source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start”
2、把profile的配置信息echo到.bashrc中 echo ‘source /etc/profile’ >> ~/.bashrc
3、在/zookeeper/bin/zkEnv.sh的中开始位置添加 export JAVA_HOME=/usr/local/jdk1.7.0_45(就像hadoop中对hadoop-env.sh的配置一样)

shell 脚本登陆其他机器操作
1、配置ssh免密钥登陆。
2、在shell脚本中执行:ssh linux用户名@主机名或者IP “要执行的命令”

0 0
原创粉丝点击