zookeeper的安装、安装问题处理,伪分布式配置

  1. 下载
    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
    执行时报错:
    原因:网站上已经没有了该版本
    解决:到http://mirror.bit.edu.cn/apache/zookeeper网站上下载相应的版本
  2. 解压:tar xvzf zookeeper-3.4.13.tar.gz
  3. 移动:mv ./ zookeeper-3.4.13.tar.gz /usr/local/
  4. 执行zkServer.sh start /usr/local/zookeeper-3.4.13/conf/zoo1.cfg
    报错:-bash: zkServer.sh: 未找到命令
    解决:vim /etc/profile添加:
    export ZOO_HOME=/usr/local/zookeeper-3.4.13
    export PATH= Z O O H O M E / b i n : ZOO_HOME/bin: PATH
    然后执行 source /etc/profile ;
  5. 启动zookeeper:zkServer.sh start /usr/local/zookeeper-3.4.13/conf/zoo1.cfg
  6. 查看zk的状态:
    zkServer.sh status /usr/local/zookeeper-3.4.13/conf/zoo1.cfg
    7.停止zookeeper:zkServer.sh stop /usr/local/zookeeper-3.4.13/conf/zoo1.cfg
    8.执行service iptables tatus 报错:
    Redirecting to /bin/systemctl status iptables.service
    Unit iptables.service could not be found.
    解决:yum install iptables-services
    9.java的安装:
    下载java:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    从windows把tar包上传至/usr/local/source中:上传用rz命令
    解压: tar xvzf jdk-8u181-linux-x64.tar.gz
    把文件移至/usr/local中:mv /usr/local/source/jdk1.8.0_181 /usr/local/jdk1.8.0_181
    环境变量配置:vim /etc/profile添加:
    #Java Env
    export JAVA_HOME=/usr/local/jdk1.8.0_181
    export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVA_HOME/lib/tools.jar
    export PATH= P A T H : PATH: JAVA_HOME/bin
    执行 source /etc/profile
    10.假分布式配置
    把zookeeper下conf文件中的zoo_example.cfg更名为zoo1.cfg,再新建zoo2.cfg zoo3.cfg。配置内容如下:
    zoo1.cfg
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/home/hadoop/tmp/zookeeper/zk1
    clientPort=2181

server.1=master:2888:3888
server.2=master:2889:3889
server.3=master:2890:3890

zoo2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/tmp/zookeeper/zk2
clientPort=2182

server.1=master:2888:3888
server.2=master:2889:3889
server.3=master:2890:3890

zoo3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/tmp/zookeeper/zk3
clientPort=2183

server.1=master:2888:3888
server.2=master:2889:3889
server.3=master:2890:3890
Zookeeper真分布部署在master、slave1、slave2 三台不同的服务器上
server1…/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/tmp/zookeeper/zk
clientPort=2181

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

server2…/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/tmp/zookeeper/zk
clientPort=2181

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

server3…/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/tmp/zookeeper/zk
clientPort=2181

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
注意:要把config下的zoo_example.cfg更名成zoo.cfg,如果存在俩个cfg文件status会报错
11.myid必须手动建立且指定在zk数据目录,也就是dataDir指定的路径(不管真分布还是伪分布都需要指定)
$ echo 1 >> /home/hadoop/tmp/zookeeper/zk1/myid
$ echo 2 >> /home/hadoop/tmp/zookeeper/zk2/myid
$ echo 3 >> /home/hadoop/tmp/zookeeper/zk3/myid
12.zookeeper启动不了解决:
1.查看防火墙状态:service iptables status。如果执行报错参考第七条。如果是激活状态,service iptables stop关闭
2.查看conf下的zookeeper.out文件中的报错:根据各种报错信息进行修正,例如java没装,端口冲突等,
配置时可能会报master:

java.net.UnknownHostException: master
	at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
	at java.net.InetAddress.getAllByName(InetAddress.java:1192)
	at java.net.InetAddress.getAllByName(InetAddress.java:1126)
	at java.net.InetAddress.getByName(InetAddress.java:1076)
	at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.recreateSocketAddresses(QuorumPeer.java:180)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:591)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:610)
	at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:838)
	at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:957)
2018-09-18 17:25:29,676 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@847] - Notification time out: 60000

在C:\Windows\System32\drivers\etc中hosts文建中加入:127.0.0.1 master。
未解决的问题:在配置伪分布式时status的状态一直是not running。但用ps -ef | grep zookeeper命令使可以看到线程时存在的,我感觉是因为在一个config下面不能存在多个cfg文件有关。目前不知道具体原因。

猜你喜欢

转载自blog.csdn.net/shidebin/article/details/82761211