Hadoop HA(高可用)环境的搭建(3)

启动脚本:

for i in slave01 slave02 slave03 do ssh $i "/usr/local/software/zookeeper-3.4.6/bin/zkServer.sh start" done start-dfs.sh ssh master03 "/usr/local/software/hadoop-2.7.0/sbin/start-yarn.sh" ssh master04 "/usr/local/software/hadoop-2.7.0/sbin/yarn-daemon.sh start resourcemanager"

启动时日志:

Hadoop HA(高可用)环境的搭建

查看集群是否正常启动的脚本:

for i in master01 master02 master03 master04 slave01 slave02 slave03 do ssh $i "hostname;source /etc/profile;jps" done

Hadoop HA(高可用)环境的搭建

停止脚本:
[hadoop@master01 ~]$ cat stop

ssh master03 "/usr/local/software/hadoop-2.7.0/sbin/stop-yarn.sh" stop-dfs.sh for i in slave01 slave02 slave03 do ssh $i "/usr/local/software/zookeeper-3.4.6/bin/zkServer.sh stop" done

Hadoop HA(高可用)环境的搭建

10. 安装过程中一些其他的操作:

shell 操作:主机间文件传输示例

for i in master02 slave01 slave02 slave03 do scp -rq software hadoop@$i:/usr/local/software/ done for i in master02 slave01 slave02 slave03 do ssh $i "source /etc/profile" done 11. 注意事项: 1. hadoop用户生成的秘钥在/home/hadoop/.ssh目录中,其他用户以此类推。 2.问题:zookeeper在linux服务器上,通过java代码来控制启动与停止。 发现能控制停止,不能控制启动。

解决:

JAVA_HOME=/usr/local/java/jdk1.7.0_76 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH

3:采用shell脚本启动zookeeper,首先新建文件start.sh
写入内容(rh1 rh2 rh3 分别是主机名。此处需要ssh):

#!/bin/sh echo “start zkServer…” for i in rh1 rh2 rh3 do ssh $i “/usr/local/zookeeper3.4/bin/zkServer.sh start” done

写好后保存,加上执行权限:chmod u+x start.sh
运行:./start.sh看见启动成功了,有输出。但是输入jps查看的时候,会发现没有QuorumPeerMain 进程。说明没有启动成功。

原因:

首先知道交互式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.6等环境的配
置,所以脚本执行/usr/local/zookeeper3.4/bin/zkServer.sh start 启动zookeeper失败了

解决方法:

把profile的配置信息echo到.bashrc中 echo ‘source /etc/profile’ >~/.bashrc
在/zookeeper/bin/zkEnv.sh的中开始位置添加 export JAVA_HOME=/usr/local/jdk1.6(就像hadoop中对hadoop-env.sh的配置一样)
采用shell脚本启动zookeeper,首先新建文件start.sh
写入内容(rh1 rh2 rh3 分别是主机名。此处需要ssh):#!/bin/sh
echo “start zkServer就可以了。

总结的解决方法(下面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的配置一样)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6ebfe25019d78b1748d92ada0788a5b8.html