Hadoop(五)ZooKeeper配置

以前只有一个从节点在复制一个从节点叫slave2
关闭slave虚拟机,右键点击克隆,克隆完后需要改一些东西:
1:更改IP地址
2:更改主机名 vim /etc/hostname
3:更改hosts vim /etc/hosts
4:设置master中hadoop中的slaves vim /home/chs/hadoop-2.7.3/etc/hadoop/slaves,然后复制到两个从节点
5:设置master中ssh免密码登录slave2 scp id_rsa.pub slave2:~/.ssh/authorized_keys
6:删除slave2中的hadoopdata目录和log目录

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

这里使用zookeeper-3.4.5.tar.gz包,上传到linux虚拟机中解压

tar -zxvf zookeeper-3.4.5.tar.gz
cd zookeeper-3.4.5

进入到conf目录中

cd conf
cp zoo_sample.cfg zoo.cfg

修改zoo.cfg文件
创建data和logs目录配置到文件中。

vim zoo.cfg

dataDir=/home/chs/zk/data         #运行数据的存放路径
dataLogdDir=/home/chs/zk/logs     #指定事务日志的存储路径
#集群模式最关键的配置参数
server.1=master:2888:3888
server.2=slave:2888:3888

接下来,添加 myid 文件,在 dataDir 目录(默认是/tmp/zookeeper)下创建 myid 文件,文件中只包含
一行,且内容为该节点对应的 server.id 中的 id 编号。例如, master 和 slave 分别对应的 myid 文件中的值是
1 和 2。

vim myid

输入 1

在Slave 节点上设置同样的配置 myid中输入 2

将 Zookeeper 安装文件复制到 HadoopSlave 节点

scp -r zookeeper-3.4.9 slave:/home/chs/software

启动 ZooKeeper 集群,分别登陆 Master 和 Slave 节点,进入 Zookeeper 安装主目录,启动服务

cd /home/chs/software/zookeeper-3.4.9
bin/zkServer.sh start

会有下面的输出:

扫描二维码关注公众号,回复: 2509500 查看本文章
ZooKeeper JMX enabled by default
Using config: /home/chs/software/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看状态 bin/zkServer.sh status

出现错误Error contacting service. It is probably not running

查看zookeeper.out文件看到错误日志

nohup: failed to run command ‘/home/chs/java/jdk1.8.0_171/bin/java’: No such file or directory

查看了jdk的路径里面是有java这个文件的,应该是zkServer.sh解析JAVA_HOME不对
解决方法,在zkServer.sh文件开头添加如下内容:

export JAVA_HOME=/home/chs/java/jdk1.8.0_172
export PATH=$JAVA_HOME/bin:$PATH  

这样是好了

运行bin/zkServer.sh status又出现错误

Exception when following the leader
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:392)
at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63)
at org.apache.zookeeper.server.quorum.QuorumPacket.deserialize(QuorumPacket.java:84)
at org.apache.jute.BinaryInputArchive.readRecord(BinaryInputArchive.java:108)
at org.apache.zookeeper.server.quorum.Learner.readPacket(Learner.java:148)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:78)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:645)

找了很久都没找到原因
后来 我把

server.1=master:2888:3888
server.2=slave:2888:3888  
改为
server.11=master:2888:3888
server.22=slave:2888:3888

并且把/home/chs/zk/data 下的mypid也改成 11和22
最后成功了

[root@master zookeeper-3.4.9]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/chs/software/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower
[root@slave zookeeper-3.4.9]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/chs/software/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader

测试连接 bin/zkCli.sh -server localhost:2181

Connecting to localhost:2181
2018-05-24 17:08:30,828 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2018-05-24 17:08:30,830 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=master
2018-05-24 17:08:30,831 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_172
2018-05-24 17:08:30,832 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/home/chs/java/jdk1.8.0_172/jre
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/home/chs/software/zookeeper-3.4.9/bin/../build/classes:/home/chs/software/zookeeper-3.4.9/bin/../build/lib/*.jar:/home/chs/software/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/chs/software/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/home/chs/software/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/home/chs/software/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/home/chs/software/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/home/chs/software/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/home/chs/software/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/home/chs/software/zookeeper-3.4.9/bin/../conf:.:/home/chs/java/jdk1.8.0_172/lib/dt.jar:/home/chs/java/jdk1.8.0_172/lib/tools.jar
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2018-05-24 17:08:30,833 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2018-05-24 17:08:30,834 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-693.el7.x86_64
2018-05-24 17:08:30,834 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2018-05-24 17:08:30,834 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2018-05-24 17:08:30,834 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/home/chs/software/zookeeper-3.4.9
2018-05-24 17:08:30,837 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@799f7e29
Welcome to ZooKeeper!
2018-05-24 17:08:30,864 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-05-24 17:08:30,925 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2018-05-24 17:08:30,950 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0xb6391607c6b0000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

[zk: localhost:2181(CONNECTED) 0]

输入help

[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port
[zk: localhost:2181(CONNECTED) 1] 

终于成功。

猜你喜欢

转载自blog.csdn.net/mingyunxiaohai/article/details/80437471