Linux下zookeeper集群环境搭建
2018-01-26 00:47
716 查看
首先准备搭建环境所需要的安装包,我选择的jdk7.65和zookeeper 3.4.8的版本。
1.JDK安装
一般Linux的发行版本有预装openjdk,这里安装标准sun公司的jdk。
1.1查看当前机器安装的jdk
rpm -qa | grep jdk
出现如下结果表示是openjdk
这种情况先卸载openjdk, 执行如下命令:
1.2安装标准jdk
将jdk的jar包复制到 /usr/local/java 目录下并执行如下命令解压:
tar -zxvf jdk-7u65-linux-x64.tar.gz
1.3 配置Java环境变量
打开 /etc/profile 文件 :vim /etc/profile
在文件末尾追加如下内容:
执行如下命令使配置生效: source /etc/profile
1.4检查jdk是否安装成功
执行如下命令: java -version
出现如下结果表示Java环境安装成功
2.Zookeeper安装
2.1 zookeeper配置
解压zookeeper的安装包zookeeper-3.4.8.tar.gz,进入主目录。将conf目录下的zoo_sample.cfg文件复制一份并命名为zoo.cfg,操作命令如下: cp conf/zoo_sample.cfg conf/zoo.cfg
新建一个数据存储目录 data:mkdir data
打开zookeeper的配置文件conf/zoo.cfg并配置如下:
以同样的配置将zookeeper安装到其他两台机器上。
在dataDir目录下(即上面配置的目录/home/sfapp/zookeeper-3.4.8/data)创建一个 myid 文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中的X即为这个数字标识。
在10.118.70.165机器上的/home/sfapp/zookeeper-3.4.8/data目录下新建文件 myid ,写入内容 1;
在10.118.70.166机器上的/home/sfapp/zookeeper-3.4.8/data目录下新建文件 myid ,写入内容 2;
在10.118.70.167机器上的/home/sfapp/zookeeper-3.4.8/data目录下新建文件 myid ,写入内容 3;
2.2 启动zookeeper
建好后分别在每台机器上启动zookeeper,启动命令如下: bin/zkServer.sh start
查看zookeeper的日志文件,主目录下的zookeeper.out文件,发现前面两台机器的启动日志里有如下异常:
因为启动第一台机器时,它会去连接其它的两台机器,由于启动顺序的先后,导致连接不成功,所以当所有机器上的zookeeper全部起来后就不会出现改类日志。
2.3 验证zookeeper
在各个zookeeper节点上执行如下命令,查看当前zookeeper的状态 : bin/zkServer.sh status
10.118.70.165上的结果为:
10.118.70.166上的结果为:
10.118.70.167上的结果为:
此时表明zookeeper集群配置成功。10.202.7.66上的zookeeper被选举为leader,而其他两台机器为follower。
检查三台机器是否均已启动,可通过jps查看,有QuorumPeerMain进程代表当前机器zookeeper已经启动(但启动成功与否无法判断)
执行如下连接命令即可连接到该zookeeper集群: bin/zkCli.sh -server 10.118.70.165:2181,10.118.70.166:2181,10.118.70.167:2181
jdk-7u65-linux-x64.tar.gz (下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html ) zookeeper-3.4.8.tar.gz (下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.8/)
1.JDK安装
一般Linux的发行版本有预装openjdk,这里安装标准sun公司的jdk。
1.1查看当前机器安装的jdk
rpm -qa | grep jdk
出现如下结果表示是openjdk
java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
这种情况先卸载openjdk, 执行如下命令:
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
1.2安装标准jdk
将jdk的jar包复制到 /usr/local/java 目录下并执行如下命令解压:
tar -zxvf jdk-7u65-linux-x64.tar.gz
1.3 配置Java环境变量
打开 /etc/profile 文件 :vim /etc/profile
在文件末尾追加如下内容:
JAVA_HOME=/usr/local/java/jdk1.7.0_65 JRE_HOME=/usr/local/java/jdk1.7.0_65/jre PATH=$JAVA_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH CLASSPATH=.:$JAVAHOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export JAVA_HOME JRE_HOME PATH CLASSPATH
执行如下命令使配置生效: source /etc/profile
1.4检查jdk是否安装成功
执行如下命令: java -version
出现如下结果表示Java环境安装成功
2.Zookeeper安装
2.1 zookeeper配置
解压zookeeper的安装包zookeeper-3.4.8.tar.gz,进入主目录。将conf目录下的zoo_sample.cfg文件复制一份并命名为zoo.cfg,操作命令如下: cp conf/zoo_sample.cfg conf/zoo.cfg
新建一个数据存储目录 data:mkdir data
打开zookeeper的配置文件conf/zoo.cfg并配置如下:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/sfapp/zookeeper-3.4.8/data clientPort=2181 server.1=10.118.70.165:2888:3888 server.2=10.118.70.166:288 4000 8:3888 server.3=10.118.70.167:2888:3888
以同样的配置将zookeeper安装到其他两台机器上。
在dataDir目录下(即上面配置的目录/home/sfapp/zookeeper-3.4.8/data)创建一个 myid 文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中的X即为这个数字标识。
在10.118.70.165机器上的/home/sfapp/zookeeper-3.4.8/data目录下新建文件 myid ,写入内容 1;
在10.118.70.166机器上的/home/sfapp/zookeeper-3.4.8/data目录下新建文件 myid ,写入内容 2;
在10.118.70.167机器上的/home/sfapp/zookeeper-3.4.8/data目录下新建文件 myid ,写入内容 3;
2.2 启动zookeeper
建好后分别在每台机器上启动zookeeper,启动命令如下: bin/zkServer.sh start
查看zookeeper的日志文件,主目录下的zookeeper.out文件,发现前面两台机器的启动日志里有如下异常:
2017-11-09 19:34:48,084 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@400] - Cannot open channel to 3 at election address /10.202.7.165:3888 java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381) at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:354) at org.apache.zookeeper.server.quorum.FastLeaderElectionMessengerMessengerWorkerSender.process(FastLeaderElection.java:452) at org.apache.zookeeper.server.quorum.FastLeaderElectionMessengerMessengerWorkerSender.run(FastLeaderElection.java:433) at java.lang.Thread.run(Thread.java:745)
因为启动第一台机器时,它会去连接其它的两台机器,由于启动顺序的先后,导致连接不成功,所以当所有机器上的zookeeper全部起来后就不会出现改类日志。
2.3 验证zookeeper
在各个zookeeper节点上执行如下命令,查看当前zookeeper的状态 : bin/zkServer.sh status
10.118.70.165上的结果为:
ZooKeeper JMX enabled by default Using config: /home/sfapp/zookeeper-3.4.8/bin/../conf/zoo.cfg Mode: follower
10.118.70.166上的结果为:
ZooKeeper JMX enabled by default Using config: /home/sfapp/zookeeper-3.4.8/bin/../conf/zoo.cfg Mode: leader
10.118.70.167上的结果为:
ZooKeeper JMX enabled by default Using config: /home/sfapp/zookeeper-3.4.8/bin/../conf/zoo.cfg Mode: follower
此时表明zookeeper集群配置成功。10.202.7.66上的zookeeper被选举为leader,而其他两台机器为follower。
检查三台机器是否均已启动,可通过jps查看,有QuorumPeerMain进程代表当前机器zookeeper已经启动(但启动成功与否无法判断)
执行如下连接命令即可连接到该zookeeper集群: bin/zkCli.sh -server 10.118.70.165:2181,10.118.70.166:2181,10.118.70.167:2181
相关文章推荐
- 【Linux环境搭建】——zookeeper集群
- linux环境下zookeeper集群搭建
- linux CentOS 7下zookeeper集群环境搭建
- Linux 环境下 Zookeeper 集群环境搭建
- window环境搭建zookeeper,kafka集群
- windows环境下搭建zookeeper伪集群
- Linux环境redis集群搭建
- zookeeper初探二 windows环境搭建伪集群
- STORM_0002_在做好的zookeeper集群上搭建storm的开发环境
- linux 搭建zookeeper集群
- windows下solrcloud+tomcat+zookeeper伪集群环境搭建
- Zookeeper实战-集群环境搭建
- 2.zookeeper安装(单机/集群环境/linux/windows)
- ZooKeeper实战【Windows集群环境搭建】
- Linux下安装搭建Memcached集群环境
- Linux下Hadoop2.7.1集群环境的搭建(超详细版)
- Linux下ZooKeeper集群搭建
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--2
- linux CentOS 7下zookeeper集群环境搭建
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)