kafka官网:http://kafka.apache.org/
官方文档:http://kafka.apache.org/documentation.html#quickstart
kafka集群安装
下载: kafka_2.10-0.8.2.0.tar.gz
解压: tar -zxvf kafka_2.10-0.8.2.0.tgz
软链接配置: ln -s kafka_2.10-0.8.2.0 kafka
修改配置文件:
cd kafka/config
vi server.properties
server.properties 配置说明(仅对需要留意的说明):
broker.id=0 // 这个ID是唯一标示,须唯一 port=9092 // 访问端口,默认为 9092 host.name=kafka-server1 // 多块网卡时,需注意。 num.io.threads=10 // disk I/O 线程数,挂多块盘的时候,应大于硬盘数 log.dirs=/home/kafka/data/kafka-logs // 存放kafka topic数据的地址,很重要,别配错 log.retention.hours=168 // 数据缓存周期,默认为7天,硬盘不够时可以调小 zookeeper.connect=zk-server1:2181,zk-server2:2181,zk-server3:2181 // zookeeper集群连接
PS:
scp -r kafka 至其余机器
其余机器修改 broker.id 和 host.name
启动过程:
1. 启动 zookeeper: ./zkServer.sh start
2. 启动 kafka: bin/kafka-server-start.sh /config/server.properties 通用启动脚本
监控安装:
kafka监控选用Yahoo开源的 kafka-manager,功能比较齐全。
1. 同时管理多个不同的集群;
2. 很容易地检查集群的状态(topics, brokers, 副本的分布, 分区的分布);
3. 选择副本;
4. 产生分区分配(Generate partition assignments)基于集群的当前状态;
5. 重新分配分区;
6. 监控进出流量,条数等信息(topics,brokers)。
7. 支持集群化部署
项目信息:https://github.com/yahoo/kafka-manager
kafka-manager没有权限管理功能,所以请操作请慎重。
sbt是scala的打包构建工具。
安装参考:http://www.scala-sbt.org/download.html
编译,生成发布包:
git clone https://github.com/yahoo/kafka-manager cd kafka-manager sbt clean dist
sbt clean dist会非常慢,期间遇到个错误,下载失败collections.jar,可以手工下载放在kafka-manager目录下。
生成的zip文件会在kafka-manager/target/universal 下面。生成的包只需要java环境就可以运行了,在部署的机器上不需要安装sbt。
在服务器上解压 生成的zip文件。
unzip kafka-manager-1.2.4.zip
修改conf/application.conf,把kafka-manager.zkhosts改为自己的zookeeper服务器地址,如:
kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts原配置里重复了一个,注掉即可启动
bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9701
http.port为web控制访问接口,默认为9000,需要修改成其他的端口。http.port 配置在application.conf里不起作用,见https://github.com/yahoo/kafka-manager/issues/16
开启JMX
功能:统计Kafka topic进出流量
开启方法:
1. 修改bin/kafka-server-start.sh,添加JMX_PORT参数,添加后样子如下(使用了9703端口,可改)
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" export JMX_PORT="9703" fi
2. 登陆Kafka-manager UI
点击Add Cluster,配置Kafka集群信息,勾选 __Enable JMX Polling__,点Save即可