zookeeper 安装
环境机器三台,系统centos6.5最小安装, 最好先关闭iptables,等部署好以后在安装需求打开.
10.221.8.220
10.221.8.221
10.221.8.222
第一步 准备需要的安装包
zookeeper: http://apache.fayea.com/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
linux 系统使用wget下载jdk,是个很操蛋的事情. .... 最后google到了一个解决办法.
右键复制需要下载的连接
直接在linux里面使用wget下载: wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz?AuthParam=1497843099_9ca771fb50851e31af9a592d3f5bdbe9 然后得到 jdk-8u131-linux-x64.tar.gz?AuthParam=1497843099_9ca771fb50851e31af9a592d3f5bdbe9文件. 直接重命名为jdk-8u131-linux-x64.tar.gz即可解压使用
第二步安装
1:安装jdk (解压配置好环境变量即可)
export JAVA_HOME=/usr/share/jdk1.6.0_35
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2:安装zookeeper (解压即可, 我把它移动到 /usr/local/下面)
第一步:修改zookeeper的配置文件 (三台机器的配置都一样)
vi /usr/local/zookeeper-3.3.6/conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper #存放数据的目录
dataLogDir=/usr/local/zookeeper-3.3.6/logs
# the port at which the clients will connect
clientPort=2181
server.1=Redis1:2888:3888 #server.1 决定了后面这个主机(Redis1)里面的zookeeper的myid文件里面的内容
server.2=Redis2:2888:3888
server.3=Redis3:2888:3888
第二步: 创建目录与文件 (处了myid 文件里面的内容不样,其他都一样.)
mkdir /usr/local/zookeeper-3.3.6/logs
mkdir /tmp/zookeeper
touch /tmp/zookeeper/myid
echo 1 > /tmp/zookeeper/myid # 各个机器上的zookeeper的myid文件里面的内容是由配置文件里面这一行( server.1=Redis1:2888:3888 )配置来决定的. 我的这个机器的hostname 是 Redis1 所以使用server.1的这个1
3 启动zookeeper
/usr/local/zookeeper-3.3.6/bin/zkServer.sh start
/usr/local/zookeeper-3.3.6/bin/zkServer.sh status #查看状态正常情况如下
JMX enabled by default
Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: leader #也可能是其他角色
########## 普通用户开机启动zookeeper ##############################
问题: 直接在/etc/rc.local里面添加下面的启动命令, zookeeper服务可以起来但是状态不对.....
su - op /home/op/server/zookeeper-3.4.8/bin/zkServer.sh status
解决方法:
第一步:创建启动文件
[ec2-user@ip-10-0-6-12 ~]$ cat /etc/init.d/zookeeper
#!/bin/bash
#/home/op/server/zookeeper-3.4.8 为我的zookeeper安装路径, 开机使用abc用户启动zookeeper.
case $1 in
start) su - abc /home/op/server/zookeeper-3.4.8/bin/zkServer.sh start;;
stop) su - abc /home/op/server/zookeeper-3.4.8/bin/zkServer.sh stop;;
status) su - abc /home/op/server/zookeeper-3.4.8/bin/zkServer.sh status;;
restart) su - abc /home/op/server/zookeeper-3.4.8/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
第二步修改权限
sudo chmod +x /etc/init.d/zookeeper
第三部, 通过chkconfig开机启动zookeeper
sudo chkconfig --add zookeeper
sudo chkconfig zookeeper on
#########修改zookeeper的日志路径#############################
修改$ZOOKEEPER_HOME/bin目录下的zkEnv.sh文件, (下面加黑的内容)
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="/home/abc/logs/zookeeper_log"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi