自己编写脚本启动hadoop各个守护进程需要的特别配置
来源:互联网 发布:只有我知bilibili电影 编辑:程序博客网 时间:2024/06/06 02:42
脚本启动zookeeper集群需要的特别配置
我写了一个启动zookeeper的脚本d.sh。启动时提示成功了不了,但实际上没有成功
脚本:
脚本很简单内容如下:
[root@crxy1 local]# more d.sh
#!/bin/sh
echo "start zkServer..."
for i in 1 2 3
do
ssh crxy$i "/usr/local/zookeeper/bin/zkServer.sh start"
done
#!/bin/sh
echo "start zkServer..."
for i in 1 2 3
do
ssh crxy$i "/usr/local/zookeeper/bin/zkServer.sh start"
done
jps查看进程
[root@crxy1 local]# jps
3347 Jps
3347 Jps
没有QuorumPeerMain 进程,实际没有启动成功
如果手工执行,/usr/local/zookeeper/bin/zkServer.sh start
会真正成功启动,jps有QuorumPeerMain进程:
[root@crxy1 local]# jps
3376 QuorumPeerMain
3394 Jps
3376 QuorumPeerMain
3394 Jps
这是个怎么回事呢?
------------------------------------------------
原因:
首先需要知道 交互式shell和非交互式shell、登录shell和非登录shell是有区别的
在登录shell里,环境信息需要读取/etc/profile和~ /.bash_profile, ~/.bash_login, and ~/.profile按顺序最先的一个,并执行其中的命令。除非被 --noprofile选项禁止了;
在非登录shell里,环境信息只读取 /etc/bash.bashrc和~/.bashrc
在非登录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的配置一样)
解决了这个问题,就以方便的通过脚本实现hadoop集群的启动与关闭了,避免了繁琐的手工操作^-^
0 0
- 自己编写脚本启动hadoop各个守护进程需要的特别配置
- 编写守护脚本需要注意的的两个问题
- linux下的hadoop配置 sbin/start-all.sh datanode守护进程启动失败----解决方案
- Hadoop启动,停止,与其中的守护进程的启动停止
- 守护进程的编写
- 守护进程的编写
- 守护进程的编写
- 守护进程的编写
- Linux下启动C/C++守护进程的bash脚本
- JSVC编写自己的Linux启动脚本
- 编写守护进程的方法
- Linux守护进程的编写
- 守护进程的编写示例
- linux-守护进程的编写
- 守护进程程序的编写
- 编写守护进程的实例
- 编写守护进程的实例
- hadoop的五个守护进程
- 二分法求多项式单根【数据结构测试3.1】
- char str1[11] = "12345\06789"; 引发的深刻教训---原来'\067'与'7'是相等的
- OpenCV系统学习(基本了解完)
- 深入了解Windows句柄到底是什么
- POJ 1002 487-3279
- 自己编写脚本启动hadoop各个守护进程需要的特别配置
- Sphere - AABB Collision Detaction
- 工业互联网不是什么?
- erlang send剖析及参数意义
- 回顾框架搭建问题总结
- Java内存管理(一)--内存分区
- 新手学Android之setContentView(R.layout.XXX);会报错
- prepareStatement的用法和解释
- 12c pdb_profiles$&In-Memory