kafka集群安装笔记

规划

3个虚拟机,每个节点角色端口如下

节点 角色 端口
m1 zk 2181;2888;3888
m2 zk 2181;2888;3888
m3 zk 2181;2888;3888
m1 kafka 9092
m2 kafka 9092
m3 kafka 9092

1. jdk安装

1.1 下载jdk

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz

1.2 解压

tar -zxvf jdk-8u151-linux-x64.tar.gz

1.3 配置jdk环境变量

  1. 编辑环境变量

    vim /etc/profile
    
  2. 增加jdk 环境变量

    export JAVA_HOME=/usr/local/jdk1.8.0_151
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar$JAVA_HOME/lib/tools.jar
    
  3. 生效环境变量

    source /etc/profile
    

2. 安装zookeeper集群

zookeeper官方文档集群配置 参考 Running Replicated ZooKeeper 一节

2.1 下载zookeeper

wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

2.1 解压

tar -zxvf zookeeper-3.4.11.tar.gz

2.2 增加配置

  1. 增加配置文件

    cp /usr/local/zookeeper-3.4.11/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.11/conf/zoo.cfg
    
  2. 配置zoo.cfg

    1. 编辑配置文件

          vim  /usr/local/zookeeper-3.4.11/conf/zoo.cfg
      
    2. 增加节点ip及端口
      在配置文件末尾增加:

          server.1=m1:2888:3888
          server.2=m2:2888:3888
          server.3=m3:2888:3888
      
    3. 修改dataDir属性

          dataDir=/var/lib/zookeeper
      
  3. 创建myid
    官方文档只有这样一段话:

    The entries of the form server.X list the servers that make up the ZooKeeper service. When the server starts up, it knows which server it is by looking for the file myid in the data directory. That file has the contains the server number, in ASCII.

    在配置文件指定zk的集群有3个实例,分别的ID是1,2,3,并且配置所对应的端口及ip,但是没有指定实例的id,zk启动时候是无法找到对应的ID,所以我们要配置每个实例的ID。

    1. 创建对应目录

      注意 需要分别在每个节点创建这样的目录。

          mkdir -p /var/lib/zookeeper
      
    2. 指定ID

          echo 1 > /var/lib/zookeeper/myid
      

      如果你没有3个节点实例执行命令如下:
      ID1实例:

          echo 1 > /var/lib/zookeeper/myid
      

      ID2实例:

          echo 2 > /var/lib/zookeeper/myid
      

      ID3实例:

          echo 3 > /var/lib/zookeeper/myid
      

3.3拷贝多个节点

    scp -r /usr/local/zookeeper-3.4.11 root@m2:/usr/local
    scp -r /usr/local/zookeeper-3.4.11 root@m3:/usr/local   

3.4 启动zk

  1. 分别每个节点执行

        /usr/local/zookeeper-3.4.11/bin/zkServer.sh start
    
  2. 验证

        /usr/local/zookeeper-3.4.11/bin/zkServer.sh status
    

出现

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: leader

或者:

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower

zk安装成功

3.安装kafka

kafka官方文档集群配置 参考 Step 6: Setting up a multi-broker cluster 一节

3.1 下载kafka

    wget https://mirrors.aliyun.com/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz

3.2 解压

    tar -zxvf kafka_2.11-1.0.0.tgz

3.3 增加配置

  1. 复制配置文件

        cp /usr/local/kafka_2.11-1.0.0/config/server.properties /usr/local/kafka_2.11-1.0.0/config/server1.properties
        cp /usr/local/kafka_2.11-1.0.0/config/server.properties /usr/local/kafka_2.11-1.0.0/config/server2.properties
        cp /usr/local/kafka_2.11-1.0.0/config/server.properties /usr/local/kafka_2.11-1.0.0/config/server1.properties
    
  2. 修改配置文件

    1. 修改文件 broker.id属性

    broker.id=1
    3个配置文件中的id不能重复(server1.properties;server2.properties;server1.properties)

    1. 去掉每个配置文件中listeners=PLAINTEXT://:9092注释
    2. 指定每个配置文件中log.dir目录并创建日志目录

    log.dir=/usr/local/kafka_2.11-1.0.0/log/

        mkdir /usr/local/kafka_2.11-1.0.0/log/
    
  3. 拷贝多个节点

    scp -r /usr/local/kafka_2.11-1.0.0/ root@m2:/usr/local
    scp -r /usr/local/kafka_2.11-1.0.0/ root@m3:/usr/local

3.4 启动

  1. 每个节一次执行
     /usr/local/kafka_2.11-1.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-1.0.0/config/server1.properties &
     /usr/local/kafka_2.11-1.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-1.0.0/config/server2.properties &
     /usr/local/kafka_2.11-1.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-1.0.0/config/server3.properties &
  1. 测试

    1. 创建topic

      bin/kafka-topics.sh --create --zookeeper m1:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
      
    2. 创建生产者
      在1个节点中

      kafka-console-producer.sh --broker-list m1:9092 --topic my-replicated-topic
      
    3. 创建消费
      在剩下2个节点执行

      bin/kafka-console-consumer.sh --bootstrap-server m1:9092 --from-beginning --topic my-replicated-topic
      

    生成者发送消息,消费者可以收到消息,kafka配置成功。

posted on 2018-01-01 17:20  Ran宁  阅读(147)  评论(0)    收藏  举报