zoukankan      html  css  js  c++  java
  • 搭建zookeeper和Kafka集群

    搭建zookeeper和Kafka集群:
    本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11、10.211.55.13、10.211.55.14,且均有相同用户名 (本实验为 jiecxy)
     
    为了方便,先在三台节点上 /etc/hosts 文件内容均添加:
     
    10.211.55.11 master
    10.211.55.13 worker1
    10.211.55.14 worker2123
     
    一、 安装zookeeper
     
    1. 下载 zookeeper-3.4.8.tar.gz
     
    2. 在 master 节点上安装 zookeeper
    解压安装包,并复制配置文件
     
    # 在master节点上
    [jiecxy@master ~]$ tar -xzvf zookeeper-3.4.8.tar.gz
    [jiecxy@master ~]$ cd zookeeper-3.4.8/conf/
    [jiecxy@master conf]$ cp zoo_sample.cfg zoo.cfg1234
     
    3. 修改 zoo.cfg
     
    [jiecxy@master conf]$ vi zoo.cfg1
    修改内容如下:
     
    ...
    # dataDir 最好不要在 /tmp 下
    dataDir=/tmp/zookeeper
    ...
    # the port at which the clients will connect
    clientPort=2181
    # 添加节点,注:端口2888、3888不固定
    server.0=master:2888:3888
    server.1=worker1:2888:3888
    server.2=worker2:2888:3888
    ...123456789101112
     
     
    4. 在 dataDir 目录下创建 data 文件夹 和 myid 文件(内容为0)
    # 在master节点上
    [jiecxy@master ~]$ mkdir /tmp/zookeeper/data/
    [jiecxy@master ~]$ touch /tmp/zookeeper/myid
    [jiecxy@master ~]$ echo 0 > /tmp/zookeeper/myid1234
     
    5. 将 zookeeper-3.4.8 文件夹复制到另外两个节点下
     
    # 在master节点上
    [jiecxy@master ~]$ scp -r zookeeper-3.4.8/ worker1:~/
    [jiecxy@master ~]$ scp -r zookeeper-3.4.8/ worker2:~/123
    并在相同 dataDir 下创建 data 文件夹 和 myid 文件
    注:worker1 的 myid 文件内容为 1,worker2 的 myid 文件内容为 2
     
    # 登录 worker1
    [jiecxy@worker1 ~]$ mkdir /tmp/zookeeper/data/
    [jiecxy@worker1 ~]$ touch /tmp/zookeeper/myid
    [jiecxy@worker1 ~]$ echo 1 > /tmp/zookeeper/myid1234
     
    # 登录 worker2
    [jiecxy@worker2 ~]$ mkdir /tmp/zookeeper/data/
    [jiecxy@worker2 ~]$ touch /tmp/zookeeper/myid
    [jiecxy@worker2 ~]$ echo 2 > /tmp/zookeeper/myid1234
     
    6. 关闭防火墙
     
    # 关闭防火墙
    service iptables stop
    # 启动防火墙
    service iptables start
    # 重启防火墙
    service iptables restart
    # 查看防火墙状态
    service iptables status
    # 永久关闭防火墙
    chkconfig iptables off
    # 永久关闭后启用
    chkconfig iptables on
    12345678910111213
     
     
    二、 安装Kafka
     
    1. 下载 kafka_2.11-0.10.0.1.tar.gz
     
    2. 在 master 节点上安装 kafka(一个broker)
    解压安装包
     
    # 在master节点上
    [jiecxy@master ~]$ tar -xzvf kafka_2.11-0.10.0.1.tar.gz12
     
    3. 修改 server.properties
     
    # 在master节点上
    [jiecxy@master ~]$ cd kafka_2.11-0.10.0.1/config/
    [jiecxy@master config]$ vi server.properties123
    修改内容如下:
     
    ...
    # master为0
    broker.id=0   
    ...
    # 连接
    zookeeper.connect=master:2181,worker1:2181,worker2:2181
    # 可删除topic
    delete.topic.enable=true
    ...123456789
     
     
     
    4. 将 kafka_2.11-0.10.0.1 文件夹复制到另外两个节点下
    # 在master节点上
    [jiecxy@master ~]$ scp -r kafka_2.11-0.10.0.1/ worker1:~/
    [jiecxy@master ~]$ scp -r kafka_2.11-0.10.0.1/ worker2:~/123
    并修改每个节点对应的 server.properties 文件的 broker.id: master为0,worker1为1,worker2为2
     

    三、 启动集群和测试
     
    注:启动时:先启动 zookeeper,后启动 kafka;关闭时:先关闭 kafka,后关闭zookeeper
     
    1. 分别在每个节点上启动 zookeeper
     
    # 在master节点上
    [jiecxy@master zookeeper-3.4.8]$ bin/zkServer.sh start
    # 在worker1节点上
    [jiecxy@worker1 zookeeper-3.4.8]$ bin/zkServer.sh start
    # 在worker2节点上
    [jiecxy@worker2 zookeeper-3.4.8]$ bin/zkServer.sh start12345678
     
    2. 验证 zookeeper 集群
     
    # 在master节点上
    [jiecxy@master zookeeper-3.4.8]$ bin/zkServer.sh status
    # 在worker1节点上
    [jiecxy@worker1 zookeeper-3.4.8]$ bin/zkServer.sh status
    # 在worker2节点上
    [jiecxy@worker2 zookeeper-3.4.8]$ bin/zkServer.sh status12345678
    显示结果为:有一个是 leader,剩下的都是 follower 
     

     
     
    3. 启动 Kafaka 集群
     
    # 在master节点上
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &
    # 在worker1节点上
    [jiecxy@worker1 kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &
    # 在worker2节点上
    [jiecxy@worker2 kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &12345678
     
    4. 测试
    创建 topic 和 显示 topic 信息
     
    # 在master节点上 创建topic
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --create --zookeeper master:2181,worker1:2181,worker2:2181 --replication-factor 3 --partitions 3 --topic test12
     
     
    # 在master节点上 显示topic信息
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --describe --zookeeper master:2181,worker1:2181,worker2:2181 --topic test12
     
     
    # 在master节点上 列出topic
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --list --zookeeper master:2181,worker1:2181,worker2:218112
     
     
    创建 producer
     
    # 在master节点上 测试生产消息
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-console-producer.sh --broker-list master:9092 -topic test12
     
     
    创建 consumer
     
    # 在master节点上 测试消费
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 -topic test --from-beginning
    # 在worker1节点上 测试消费
    [jiecxy@worker1 kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 -topic test --from-beginning
    # 在worker2节点上 测试消费
    [jiecxy@worker2 kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 -topic test --from-beginning12345678
    然后在 producer 里输入消息,consumer 中就会显示出同样的内容,表示消费成功
     
     
    5. 删除 topic 和关闭服务
     
    # 在master节点上 删除topic
    [jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --delete --zookeeper master:2181,worker1:2181,worker2:2181 --topic test12
    关闭
     
    # 在master节点上 关闭kafka
    [jiecxy@master ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
    # 在worker1节点上 关闭kafka
    [jiecxy@worker1 ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
    # 在worker2节点上 关闭kafka
    [jiecxy@worker2 ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
    # 在master节点上 关闭zookeeper
    [jiecxy@master ~]$ ./zookeeper-3.4.8/bin/zkServer.sh stop
    # 在worker1节点上 关闭zookeeper
    [jiecxy@worker1 ~]$ ./zookeeper-3.4.8/bin/zkServer.sh stop
    # 在worker2节点上 关闭zookeeper
    [jiecxy@worker2 ~]$ ./zookeeper-3.4.8/bin/zkServer.sh stop
     
     
    --------------------- 
    原文:https://blog.csdn.net/jiecxy/article/details/52348120
  • 相关阅读:
    转角色权限系统的一些概念
    error message cs0012
    关于Action返回结果类型的事儿(下)
    MVC中权限的知识点及具体实现代码
    iis7 发布mvc3 遇到的HTTP错误 403.14Forbidden Web 服务器被配置为不列出此目录的内容及Login on failed for "IIS APPPOOL\ASP.NET v4.0"问题
    关于获取时间段的整理片段
    ASP.NET MVC – 关于Action返回结果类型的事儿(上)
    Lucene 查询权重排序因子解释(备查)
    Lucene代替SQL Server NewGuid获取随机结果
    如何在Web数据挖掘中保证用户访问速度的一点实践(SQLite+Quartz)
  • 原文地址:https://www.cnblogs.com/tudachui/p/10277692.html
Copyright © 2011-2022 走看看