日志

kafka集群部署

Kafka是一个分布式的,可分区的,支持冗余备份的日志服务,提供消息系统功能,它相当于一条插口式的高速数据总线,主要用于处理活跃的流式数据,能有效降低系统组网的复杂度,和编程复杂度。本文主要介绍如何部署Kafka集群。

Kafka集群依赖Zookeeper集群协调管理,所以部署Kafka集群之前我们需要先搭建好Zookeeper Cluster

集群环境

假设有以下集群节点
hadoop1(192.168.10.1)
hadoop2(192.168.10.2)
hadoop3(192.168.10.3)

Zookeeper集群搭建

1)下载Zookeeper

Zookeeper Download

2)安装

将安装包解压到集群各个节点的指定目录下($ZK_HOME)

3)配置

在$ZK_HOME/conf/创建zoo.cfg配置文件

  1. #基本时间单位,控制心跳和超时的基准
  2. tickTime=2000
  3.  
  4. #允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间.
  5. #它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败.
  6. initLimit=10
  7.  
  8. #leader 与 follower 之间发送消息,请求和应答时间长度.
  9. #如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃.
  10. syncLimit=5
  11.  
  12. #自动清理事务日志和快照的时间间隔(小时)
  13. autopurge.purgeInterval=24
  14.  
  15. #需要保留的快照文件数
  16. autopurge.snapRetainCount=30
  17.  
  18. #存储数据的位置
  19. dataDir=/hadoop/zookeeper
  20.  
  21. #监听客户端连接端口
  22. clientPort=2181
  23.  
  24. #指定集群的机器配置,配置格式为“server.id=host:port:port”,其中id必须唯一.
  25. #并且需要在各台机器的dataDir下创建一个myid的文件,在myid文件中输入对应机器的id值.
  26. #另外,第一个端口( 2888 )是follower机器连接到leader机器的端口,第二个端口(3888)是用来进行leader选举的端口.
  27. server.1=hadoop1:2888:3888
  28. server.2=hadoop2:2888:3888
  29. server.3=hadoop3:2888:3888

4)运行

在各个节点上启动zookeeper

  1. $ZK_HOME/bin/zkServer.sh start

观察zookeeper运行状态

  1. $ZK_HOME/bin/zkServer.sh status

Kafka集群搭建

1)下载Kafka

Kafka Download (本文以0.8.2.2为例)

2)安装

将安装包解压到各个节点的指定目录($KAFKA_HOME)下即可

3)配置

编辑$KAFKA_HOME/config/server.properties

  1. #指定zookeeper的连接信息
  2. zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181
  3.  
  4. #每个broker相当于一个节点,注意各个节点的broker.id的值必须唯一
  5. broker.id=1
  6.  
  7. #broker监听端口
  8. port=9092
  9.  
  10. #broker绑定的hostname,注意根据各个节点来设置
  11. host.name=hadoop1

4)运行

在各个节点启动kafka的server

  1. $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties

至此Kafka的集群部署完成,关于Kafka的更详细操作可以参考这里

转载请注明出处:

© http://hejunhao.me