美文网首页
安装配置Zookeeper和Kafka集群

安装配置Zookeeper和Kafka集群

作者: 幽篁处山鬼 | 来源:发表于2017-09-07 20:01 被阅读1218次

    环境配置参考 ELK环境配置

    安装配置zookeeper

    部署在zk集群节点机器上(最少需要三台)

    • 安装zookeeper

      tar zxf zookeeper-3.4.9.tar.gz
      mv /opt/elk/zookeeper-3.4.9 /usr/local/zookeeper
      mkdir /home/zk_data     #创建zk数据存放目录
      echo 101 > /home/zk_data/myid   # 创建myid文件,三台机器上不可相同
      
    • 配置zookeeper

      cd /usr/local/zookeeper/conf
      cp zoo_sample.cfg zoo.cfg
      
      vim zoo.cfg
          tickTime=2000
          initLimit=10
          syncLimit=5
          dataDir=/home/zk_data
          clientPort=2181
          server.101=10.8.189.101:2888:3888
          server.102=10.8.189.102:2888:3888
          server.103=10.8.189.103:2888:3888
          
      Zookeeper默认会将控制台信息输出到启动路径下的zookeeper.out中
      显然在生产环境中我们不能允许Zookeeper这样做,通过如下方法,可以让Zookeeper输出按尺寸切分的日志文件:
      
      修改conf/log4j.properties
      zookeeper.root.logger=INFO, CONSOLE改为zookeeper.root.logger=INFO, ROLLINGFILE
      
      修改bin/zkEnv.sh文件
      ZOO_LOG4J_PROP="INFO,CONSOLE"改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
      
    • zk相关命令

      /usr/local/zookeeper/bin/zkServer.sh start  #启动zk
      /usr/local/zookeeper/bin/zkServer.sh status  #查看zk启动状态  正常三台节点,应有两台follower和一台leader
      

    安装配置kafka

    Kafka 是一个高吞吐量的分布式发布订阅日志服务,具有高可用、高性能、分布式、高扩展、持久性等特性。目前已经在各大公司中广泛使用。和之前采用 Redis 做轻量级消息队列不同,Kafka 利用磁盘作队列,所以也就无所谓消息缓冲时的磁盘问题。此外,如果公司内部已有 Kafka 服务在运行,logstash 也可以快速接入,免去重复建设的麻烦

    10.8.189.10110.8.189.102两台机器上部署kafka做集群

    tar zxf kafka_2.12-0.10.2.1.tgz 
    mv /opt/elk/kafka_2.12-0.10.2.1 /usr/local/kafka
    cd /usr/local/kafka
    mkdir /home/data     # 创建消息文件存储的路径
    

    编辑kafka配置文件

    vim /usr/local/kafka/config/server.properties
    
    broker.id=101       # brokerid 每台机器不同
    delete.topic.enable=true
    num.network.threads=3
    num.io.threads=8
    
    post=9092
    hostname=10.8.189.101
    
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    
    log.dirs=/home/data
    
    num.partitions=6
    num.recovery.threads.per.data.dir=1
    
    log.retention.hours=72
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    
    kafka默认启动以hostname识别
    # vim /etc/hosts
        10.8.189.101 elk1
        10.8.189.102 elk2
        10.8.189.103 elk3
    

    kafka启动

    cd /usr/local/kafka/
    nohup /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties &
    

    测试zk和kafka之间的连通性

    #在10.8.189.101上创建一个topics主题
    /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 10.8.189.101:2181 --replication-factor 2 --partitions 1 --topic kafka_es
    
        --replication-factor 2 #复制两份
        --partitions 1 #创建1个分区
        --topic #主题为shuaige
    
    #在10.8.189.101上创建一个发布者
    /usr/local/kafka/bin/kafka-console-producer.sh --broker-list 10.8.189.101:9092 --topic kafka_es
    
    #在10.8.189.102上创建一个订阅者
    /usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper 10.8.189.102:2181 --topic kafka_es --from-beginning
    
    # 删除一个topic 
    # bin/kafka-topics.sh --delete --zookeeper 10.8.189.101:2181 --topic topics_name
    # 如果还不能删除, 可以到zookeeper中去干掉它
    # cd /usr/local/zookeeper-3.4.10/
    # bin/zkCli.sh
    # ls /brokers/topics            # 查看topic
    # rmr /brokers/topics/topics_name     # 删除topic
    

    在发布者的终端中输入字符信息,可以在订阅者上看到输出。这个时候kafka就可以用作消息队列的收发了

    相关文章

      网友评论

          本文标题:安装配置Zookeeper和Kafka集群

          本文链接:https://www.haomeiwen.com/subject/socwjxtx.html