大数据平台搭建-zookeeper集群的搭建

发布日期:2019-10-27

本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容:

虚拟服务器安装基础环境安装zookeeper集群的搭建kafka集群的搭建hadoop/hbase集群的搭建spark集群的搭建flink集群的搭建elasticsearch集群的搭建alluxio集群的搭建

本文主要讲述zookeeper的安装,日志配置基础优化。

简介

Zookeeper是一个分布式的、开源的分布式应用协调服务,它暴露了一组简单的基础原件,分布式应用可以在这些原件之上实现更高级别的服务,主要使用场景和功能如下:

Naming serviceConfiguration managementSynchronizationLeader electionMessage QueueNotification system

其集群管理和命名服务在kafka、hadoop、spark中均有相关应用。

安装

官网地址zookeeper,本文选择稳定版zookeeper-3.4.10.tar.gz

资源列表

本文资源列表如下:

主机名 ip地址
bigdata1 192.168.220.200
bigdata2 192.168.220.201
bigdata3 192.168.220.202

解压

切换至主目录

cd ~

解压

tar -zxvf zookeeper-3.4.10.tar.gz

重命名

mv zookeeper-3.4.10 zookeeper

配置

生成zoo.cfg文件切换到conf目录,利用zoo_sample.cfg生成配置文件并更改配置。

cd /home/oracle/zookeeper/conf cp /home/oracle/zookeeper/conf/zoo_sample.cfg /home/oracle/zookeeper/conf/zoo.cfg

配置zoo.cfg文件编辑zoo.cfg文件

vi /home/oracle/zookeeper/conf/zoo.cfg

修改后内容如下:

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/oracle/zookeeper/data clientPort=2181 maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=192.168.220.200:2888:3888 server.2=192.168.220.201:2888:3888 server.3=192.168.220.202:2888:3888

其中dataDir主要用于存储zookeeper的数据文件和快照信息。server.x中的数字1,2,3),是zookeeper的主机标识,不同的主机均应保持唯一。

配置myid文件zookeeper集群中机器均需要在对应的dataDir目录新建myid文件

vi /home/oracle/zookeeper/data/myid

bigdata1的myid为1,bigdata2的myid为2,bigdata3的myid为3,如果还有其他主机,依次类推,具体的数字和zoo.cfg中的保持一致即可。

配置zkEnv.sh文件默认情况下,zookeeper的日志信息输出到zookeeper.out文件中,本文目录/home/oracle/zookeeper/bin/zookeeper.out。但是随着程序的进行,其日志文件会相当大,为便于后续的维护,优化相关配置,将日志输出到指定目录。编辑zkEnv.sh文件

vi /home/oracle/zookeeper/bin/zkEnv.sh

新增ZOO_LOG_DIR路径配置

ZOO_LOG_DIR=/home/oracle/zookeeper/logs

配置log4j.properties文件虽然日志目录已更改,但是日志还是一直输出到一个文件中,不便于后续日志的查找和维护。编辑log4j.properties文件

vi /home/oracle/zookeeper/conf/log4j.properties

更改zookeeper.root.logger的配置为ROLLINGFILE

zookeeper.root.logger=INFO,ROLLINGFILE

指定具体的日志目录

zookeeper.log.dir=/home/oracle/zookeeper/logs

同时更改appender.ROLLINGFILE的属性

log4j.appender.ROLLINGFILE.MaxFileSize=50MB log4j.appender.ROLLINGFILE.MaxBackupIndex=10

上述配置表每个日志文件最多50M,最多10个备份文件,这样日志目录最多就500M。生产环境基本上会根据天或者小时去切分日志文件,不再赘述,具体的可以去看log4j官网。完整的log4j.properties文件如下:

# Define some default values that can be overridden by system properties #zookeeper.root.logger=INFO, CONSOLE zookeeper.root.logger=INFO,ROLLINGFILE zookeeper.console.threshold=INFO zookeeper.log.dir=/home/oracle/zookeeper/logs zookeeper.log.file=zookeeper.log zookeeper.log.threshold=DEBUG zookeeper.tracelog.dir=. zookeeper.tracelog.file=zookeeper_trace.log log4j.rootLogger=${zookeeper.root.logger} log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold} log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file} # Max log file size of 10MB log4j.appender.ROLLINGFILE.MaxFileSize=50MB # uncomment the next line to limit number of backup files log4j.appender.ROLLINGFILE.MaxBackupIndex=10 log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n log4j.appender.TRACEFILE=org.apache.log4j.FileAppender log4j.appender.TRACEFILE.Threshold=TRACE log4j.appender.TRACEFILE.File=${zookeeper.tracelog.dir}/${zookeeper.tracelog.file} log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n

同步bigdata1配置更改完成后,直接将整个zookeeper目录同步到bigdata2和bigdata3

scp -r /home/oracle/zookeeper oracle@bigdata2:/home/oracle/ scp -r /home/oracle/zookeeper oracle@bigdata3:/home/oracle/

同步完成后,记得更改bigdata2和bigdat3的myid文件中的数值。

启动和验证

启动

[oracle@bigdata1 conf]$ /home/oracle/zookeeper/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /home/oracle/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED

查看各节点的主从情况

[oracle@bigdata1 conf]$ /home/oracle/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/oracle/zookeeper/bin/../conf/zoo.cfg Mode: follower [oracle@bigdata1 conf]$ [oracle@bigdata2 logs]$ /home/oracle/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/oracle/zookeeper/bin/../conf/zoo.cfg Mode: follower [oracle@bigdata2 logs]$ [oracle@bigdata3 logs]$ /home/oracle/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/oracle/zookeeper/bin/../conf/zoo.cfg Mode: leader [oracle@bigdata3 logs]$

可以看到bigdata3为主节点,bigdata1和bigdata2为从节点。