zoukankan      html  css  js  c++  java
  • 大数据平台搭建-zookeeper集群的搭建

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

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

    简介

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

    • Naming service
    • Configuration management
    • Synchronization
    • Leader election
    • Message Queue
    • Notification system

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

    安装

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

    资源列表

    本文资源列表如下:

    <td>主机名</td>
    <td>ip地址</td>
    
    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为从节点。


    关于作者
    爱编程、爱钻研、爱分享、爱生活
    关注分布式、高并发、数据挖掘
    如需捐赠,请扫码

  • 相关阅读:
    软件设计工具
    电脑运行 apk
    苹果开发网站
    在Tomcat中部署war
    sql server 2000 语法
    用 xml格式 输出 jsp
    点子网站
    网站推广
    TabWidget
    Java 中文拼音 排序
  • 原文地址:https://www.cnblogs.com/aidodoo/p/9361523.html
Copyright © 2011-2022 走看看