本次测验的系统环境为 Ubuntu 16.04 LTS,测试内容均得到正确的验证,如果其他环境出现不一致的现象,请查阅相关的差异。
比如先要实现下面的应用程序的开机自启动(实现的代码最下面给出,有需要的可以查看):
1. 应用程序的名称:app.bin
2. 应用程序的保存路径:/home/ubuntu/app/ 下
3. 应用程序的工作路径:/home/ubuntu/app/ 下
使用shell脚本启动zookeeper步骤:
采用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就可以了。
,
1、首先需要登陆你的linux服务器,用cd 命令切换到/etc/rc.d/init.d/目录下。
2、接着用touch zookeeper创建一个文件。
3、然后为这个文件添加可执行权限chmod +x zookeeper。
4、接着用vi zookeeper来编辑这个文件。
5、接着在zookeeper里面输入如下内容。
6、然后保存退出。先按esc,再按:键盘,接这个输入wq即可保存退出。
7、这个时候就可以用service zookeeper 显示start/stop即可查看是否启动停止zookeeper服务了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)