本文旨在讲述zookeeper-3.4.10在CentOS 7系统下Hadoop-2.7.7集群中的安装配置。
关于zookeeper-3.4.10的下载地址:https://www-eu.apache.org/dist/zookeeper/。选择适合的版本进行下载就可以了。
本文主要演示的是安装在/home/hadoop目录下的,安装配置,至于安装在/usr/local下的,道理是一样的,就是关于zk目录的位置不同,在填写配置文件时,需要注意,还有就是权限问题,需要注意。
我呢,先是在Windows系统上下载好,然后通过Xshell传进CentOS系统的,当然,你也可以选择直接在CentOS系统的浏览器上直接下载,安装方法都一样。将zookeeper传进虚拟机后,就要解压该文件。
执行
sudo tar -zxf zookeeper-3.4.10.tar.gz -C /usr/local #解压安装在根目录下
或者
tar -zxf zookeeper-3.4.10.tar.gz #解压安装在/home/hadoop/目录下
这里以安装在home/hadoop目录下的安装配置为例,进行安装。解压完成后,就需要改一下名字,方便进行操作。
mv zookeeper-3.4.10 zookeeper #将zookeeper-3.4.10改名位zookeeper
#如果是解压在/usr/local/下,需要执行
sudo mv zookeeper-3.4.10 zookeeper
#并修改该文件的权限
sudo chown -R hadoop:hadoop zookeeper
然后是在~下,创建zk目录,并在zk下创建data
mkdir -p zk/data
touch zk/data/myid #创建myid文件,并在文件内写入1
echo "1" > zk/data/myid #将1写入myid中,在其余节点的此文件中分别输入2和3
mkdir zk/log
#如果是你将想在/usr/local下创建,执行以下
cd /usr/local
sudo mkdir -p zk/data
sudo touch zk/data/myid
sudo mkdir zk/log
sudo chown -R hadoop:hadoop zk
sudo echo "1" > zk/data/myid
修改配置文件
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi 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.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/hadoop/zk/data
#如果在/usr/local下用这个 dataDir=/usr/local/zk/data 把上边那个删掉,把这个填上去
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
dataLogDir=/home/hadoop/zk/log
#如果是解压在/usr/local下,用这个 dataLogDir=/usr/local/zk/log 上边那行删掉,填这个
server.1=Master:2888:3888
server.2=Slave1:2888:3888
server.3=Slave2:2888:3888
~
client:监听客户端链接的端口。
tickTime: 基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每个tickTime时间就会发送一个心跳;最小的session过期时间为两倍tickTime。
dataDir:存储内存中数据库快照的位置,如果不设置参数,更新的日志将被储存到默认位置。
dataLogDir: 让管理机器把事务日志写入指定的目录中,不与“dataDir”共用一个目录,避免快照和日志的竞争。
最后,可以将配置好的zookeeper和zk文件都通过scp传到Slave1和Slave2里,也可以,在Slave1、Slave2单独完成配置。
#解压在/home/hadoop下,进行
scp -r ./zookeeper hadoop@Slave1:/home/hadoop
scp -r ./zk hadoop@Slave1:/home/hadoop
scp -r ./zookeeper hadoop@Slave2:/home/hadoop
scp -r ./zk hadoop@Slave2:/home/hadoop
#解压在/usr/local下,在/usr/local下
cd /usr/local
sudo tar -zcf ~/zookeeper.master.tar.gz ./zookeeper #可能要输入Hadoop用户密码
sudo tar -zcf ~/zk.master.tar.gz ./zk
cd ~
sudo scp -r ./zookeeper.master.tar.gz hadoop@Slave1:/usr/local
sudo scp -r ./zk.master.tar.gz hadoop@Slave1:/usr/local
sudo scp -r ./zookeeper.master.tar.gz hadoop@Slave2:/usr/local
sudo scp -r ./zk.master.tar.gz hadoop@Slave2:/usr/local
#进入节点Slave1、Slave2执行
cd /usr/local
#解压两个压缩包
sudo tar -zxf ./zookeeper.master.tar.gz
sudo tar -zxf ./zk.master.tar.gz
ll #查看zookeeper和zk的拥有着和所属组,
#如果都是hadoop,则不用管;
#如果不是hadoop而是root,则要在Slave1、Slave2分别
#执行以下两条命令
sudo chown -R hadoop:hadoop zookeeper
sudo chown -R hadoop:hadoop zk
关于传送到/usr/local下的截图
别忘了修改zk/data/myid文件的数值,Slave1写入2,Slave2写入3.
zookeeper的启动是要在三台虚拟机上,都打开才行的,在开启zookeeper前,需要把集群先启动。
Attention:zookeeper的启动,要在三台虚拟机上,分别打开,记住是分别打开!!!!!
zookeeper/bin/zkServer.sh start #启动zookeeper
zookeeper/bin/zkServer.sh status #查看状态
zookeeper/bin/zkServer.sh stop #关闭zookeeper
#解压在/usr/local下,在上述每个命令前加上
/usr/local/
在三台虚拟机上都打开zookeeper后,能看到 STARTED显示启动成功,查看状态会显示该节点是follower还是leader。
至此,zookeeper的集群配置就完成了,下一篇就是介绍Hbase 的安装配置的了,zookeeper要和hbase一起用。本来,Hbase自带的有zookeeper,可是有时候老师会要求禁用Hbase自带的zookeeper,所以,还是自己配好点儿。