zoukankan      html  css  js  c++  java
  • Kafka 集群搭建步骤

    Kafka 集群搭建步骤
    
    1. 机器准备
    
    本文中,我们将准备三台机器搭建 Kafka 集群,IP 地址分别是 192.168.1.1,192.168.1.2,192.168.1.3,并且三台机器网络互通。
    
    2. 下载并安装 kafka_2.10-0.8.2.1
    
    下载地址: https://kafka.apache.org/downloads.html
    
    下载完成后,上传到目标机器中的一个,如 192.168.1.1 , 使用以下命令解压:
    清单 1. Kafka 安装包解压命令
    
     tar –xvf kafka_2.10-0.8.2.1
    
    安装完成。
    
    3. 创建 zookeeper 数据目录并设定服务器编号
    
    在所有三台服务器上执行下面操作。
    
    切换到当前用户工作目录,如/home/fams , 创建 zookeeper 保存数据的目录, 然后在这个目录下新建服务器编号文件。
    清单 2. 创建数据目录和服务器编号文件命令
    
    mkdir zk_data
    cat N > myid
    
    注意需要保证 N 在三台服务器上取不同值,如分别取 1,2,3。
    
    4. 编辑 zookeeper 配置文件
    
    Kafka 安装包中内置 zookeeper 服务。进入 Kafka 安装目录, 如/home/fams/kafka_2.10-0.8.2.1, 编辑 config/zookeeper.properties 文件,增加以下配置:
    清单 3. zookeeper 配置项
    
    tickTime=2000
    dataDir=/home/fams/zk_data/
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=192.168.1.1:2888:3888
    server.2=192.168.1.2:2888:3888
    server.3=192.168.1.3:2888:3888
    
    这些配置项的解释如下:
    
        tickTime:zookeeper 服务器之间的心跳时间间隔,以毫秒为单位。
        dataDir:zookeeper 的数据保存目录,我们也把 zookeeper 服务器的 ID 文件保存到这个目录下,下文会介绍。
        clientPort:zookeeper 服务器会监听这个端口,然后等待客户端连接。
        initLimit:zookeeper 集群中 follower 服务器和 leader 服务器之间建立初始连接时所能容忍的心跳次数的极限值。
        syncLimit:zookeeper 集群中 follower 服务器和 leader 服务器之间请求和应答过程中所能容忍的心跳次数的极限值。
        server.N:N 代表的是 zookeeper 集群服务器的编号。对于配置值,以 192.168.1.1:2888:3888 为例,192.168.1.1 表示该服务器的 IP 地址,2888 端口表示该服务器与 leader 服务器的数据交换端口,3888 表示选举新的 leader 服务器时候用到的通信端口。
    
    5.编辑 Kafka 配置文件
    
    a. 编辑 config/server.properties 文件
    
    添加或修改以下配置。
    清单 4. Kafka Broker 配置项
    
    broker.id=0
    port=9092
    host.name=192.168.1.1
    zookeeper.contact=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
     log.dirs=/home/fams/kafka-logs
    
    这些配置项解释如下:
    
        broker.id:Kafka broker 的唯一标识,集群中不能重复。
        port: Broker 的监听端口,用于监听 Producer 或者 Consumer 的连接。
        host.name:当前 Broker 服务器的 IP 地址或者机器名。
        zookeeper.contact:Broker 作为 zookeeper 的 client,可以连接的 zookeeper 的地址信息。
        log.dirs:日志保存目录。
    
    b. 编辑 config/producer.properties 文件
    
    添加或者修改以下配置:
    清单 5. Kafka Producer 配置项
    
    broker.list=192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092
    producer.type=async
    
    这些配置项解释如下:
    
        broker.list:集群中 Broker 地址列表。
        producer.type: Producer 类型,async 异步生产者,sync 同步生产者。
    
    c. 编辑 config/consumer.properties 文件
    清单 6. Kafka Consumer 配置项
    
    zookeeper.contact=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
    
    配置项解释如下:
    
        zookeeper.contact: Consumer 可以连接的 zookeeper 服务器地址列表。
    
    6.上传修改好的安装包到其他机器
    
    至此,我们已经在 192.168.1.1 机器上修改好了所有需要的配置文件,那么接下来请用以下命令打包该 Kafka 安装包,并上传至 192.168.1.2 和 192.168.1.3 两台机器上。
    清单 7. 打包并上传 Kafka 安装包的命令
    
    tar –cvf kafka_2.10-0.8.2.1.tar ./kafka_2.10-0.8.2.1
    scp ./kafka_2.10-0.8.2.1.tar fams@192.168.1.2:/home/fams
    scp ./kafka_2.10-0.8.2.1.tar fams@192.168.1.3:/home/fams
    
    上传完成后,我们需要到 192.168.1.2 和 192.168.1.3 两台机器上解压刚才上传的 tar 包,命令如清单一。之后需要分别在两台机器上修改 config/server.properties 文件中的 broker.id 和 host.name. broker.id,可以分别复制 1 和 2,host.name 需要改成当前机器的 IP。
    
    7. 启动 zookeeper 和 Kafka 服务
    
    分别在三台机器上运行下面命令启动 zookeeper 和 Kafka 服务。
    清单 8. 启动 zookeeper 服务
    
    nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
    
    清单 9. 启动 kafka 服务
    
    nohup bin/kafka-server-start.sh config/server.properties &
    
    8. 验证安装
    
    我们的验证步骤有两个。
    
    第一步,分别在三台机器上使用下面命令查看是否有 Kafka 和 zookeeper 相关服务进程。
    清单 10. 查看 Kafka 和 zookeeper 服务进程
    
    ps –ef | grep kafka
    
    第二步,创建消息主题,并通过 console producer 和 console consumer 验证消息可以被正常的生产和消费。
    清单 11. 创建消息主题
    
    bin/kafka-topics.sh --create 
    --replication-factor 3 
    --partition 3 
    --topic user-behavior-topic 
    --zookeeper 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
    
    运行下面命令打开打开 console producer。
    清单 12. 启动 Console Producer
    
    bin/kafka-console-producer.sh --broker-list 192.168.1.1:9092 --topic user-behavior-topic
    
    在另一台机器打开 console consumer。
    清单 13. 启动 Console Consumer
    
    ./kafka-console-consumer.sh --zookeeper 192.168.1.2:2181 --topic user-behavior-topic --from-beginning
    
    然后如果在 producer console 输入一条消息,能从 consumer console 看到这条消息就代表安装是成功的。

  • 相关阅读:
    【cdq分治】【P4390】[BOI2007]Mokia 摩基亚
    【树上莫队】【SP10707】 COT2
    【费用流】【网络流24题】【P1251】 餐巾计划问题
    【费用流】【网络流24题】【P4014】 分配问题
    【MST】P2323 [HNOI2006]公路修建问题
    【组合数学】【P5216】DLS采花
    【线段树】【P4198】 楼房重建
    【整体二分】【P3527】 [POI2011]MET-Meteors
    【线性基/神仙题】P4151 [WC2011]最大XOR和路径
    【枚举&数据结构】【P2484】 [SDOI2011]打地鼠
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501353.html
Copyright © 2011-2022 走看看