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
2)安装
将安装包解压到集群各个节点的指定目录下($ZK_HOME)
3)配置
在$ZK_HOME/conf/创建zoo.cfg配置文件
#基本时间单位,控制心跳和超时的基准 tickTime=2000 #允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间. #它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败. initLimit=10 #leader 与 follower 之间发送消息,请求和应答时间长度. #如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃. syncLimit=5 #自动清理事务日志和快照的时间间隔(小时) autopurge.purgeInterval=24 #需要保留的快照文件数 autopurge.snapRetainCount=30 #存储数据的位置 dataDir=/hadoop/zookeeper #监听客户端连接端口 clientPort=2181 #指定集群的机器配置,配置格式为“server.id=host:port:port”,其中id必须唯一. #并且需要在各台机器的dataDir下创建一个myid的文件,在myid文件中输入对应机器的id值. #另外,第一个端口( 2888 )是follower机器连接到leader机器的端口,第二个端口(3888)是用来进行leader选举的端口. server.1=hadoop1:2888:3888 server.2=hadoop2:2888:3888 server.3=hadoop3:2888:3888
4)运行
在各个节点上启动zookeeper
$ZK_HOME/bin/zkServer.sh start
观察zookeeper运行状态
$ZK_HOME/bin/zkServer.sh status
Kafka集群搭建
1)下载Kafka
Kafka Download (本文以0.8.2.2为例)
2)安装
将安装包解压到各个节点的指定目录($KAFKA_HOME)下即可
3)配置
编辑$KAFKA_HOME/config/server.properties
#指定zookeeper的连接信息 zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181 #每个broker相当于一个节点,注意各个节点的broker.id的值必须唯一 broker.id=1 #broker监听端口 port=9092 #broker绑定的hostname,注意根据各个节点来设置 host.name=hadoop1
4)运行
在各个节点启动kafka的server
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
至此Kafka的集群部署完成,关于Kafka的更详细操作可以参考这里