kafka集群安装
集群规划
服务器IP地址 | 节点名称 | 备注 |
---|---|---|
192.168.56.41 | hadoop001 | kafka版本:kafka_2.11-1.1.0.tgz |
192.168.56.42 | hadoop002 | 操作系统:centos7 |
192.168.56.43 | hadoop003 |
kafka需要依赖zookeeper,虽然kafka默认自带zookeeper,但是生产环境一般使用独立的zookeeper;zookeeper安装:https://blog.youkuaiyun.com/qq_29767087/article/details/110953035
kafka安装
kafka官网地址:http://kafka.apache.org/
1、下载kafka
$ wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
2、准备安装目录
$ mkdir /opt/kafka
$ mkdir /opt/kafka/data
3、解压安装
$ tar -zxvf kafka_2.11-1.1.0.tgz -C /opt/kafka
4、修改配置文件
$ cd /opt/kafka/kafka_2.11-1.1.0/config/
# 编辑配置文件server.properties,增加修改如下内容(其他参数根据需要修改)
$ vi server.properties
broker.id=0 # broker的全局唯一编号,不能重复(三个节点分别设为0,1,2)
delete.topic.enable=true # 启用删除 topic 功能使能 (默认false)
log.dirs=/opt/kafka/data # kafka 运行日志存放的路径
log.retention.hours=72 # segment 文件保留的最长时间,超时将被删除 (默认168)
zookeeper.connect=hadoop001:2181,hadoop002:2181,hadoop003:2181 #配置连接 Zookeeper 集群地址
更多配置查看:http://kafka.apache.org/11/documentation.html#configuration
5、启动kafka
$ /opt/kafka/kafka_2.11-1.1.0/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-1.1.0/config/server.properties
$ jps # 查看进程
28320 QuorumPeerMain
19952 Kafka
20034 Jps
6、kafka集群一键启动关闭脚本(需要事先配置免密登录)
#!/bin/bash
HOSTS="hadoop001 hadoop002 hadoop003"
case $1 in
start){
for host in hadoop001 hadoop002 hadoop003
do
echo ------------$host---------------
ssh $host "source /etc/profile; /opt/kafka/kafka_2.11-1.1.0/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-1.1.0/config/server.properties"
done
};;
stop){
for host in $HOSTS
do
echo ------------$host---------------
ssh root@$host "source /etc/profile; /opt/kafka/kafka_2.11-1.1.0/bin/kafka-server-stop.sh"
done
};;
status){
for host in $HOSTS
do
echo ------------$host---------------
ssh $host "/usr/local/jdk1.8.0_251/bin/jps"
done
};;
esac
命令行操作
1、topic操作命令kafka-topics.sh
# 所有命令在目录/opt/kafka/kafka_2.11-1.1.0下执行
# 查看当前服务器中的所有topic
$ bin/kafka-topics.sh --zookeeper hadoop001:2181 --list
# 创建topic
$ bin/kafka-topics.sh --zookeeper hadoop001:2181 --create --replication-factor 3 --partitions 3 --topic first
选项说明:
--topic 定义 topic 名
--replication-factor 定义副本数
--partitions 定义分区数
# 删除topic
$ bin/kafka-topics.sh --zookeeper hadoop001 --delete --topic first
# 需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除。
# 查看topic详情
$ bin/kafka-topics.sh --zookeeper hadoop001:2181 --describe --topic first
2、生产与消费消息
# 启动生产者
$ bin/kafka-console-producer.sh --broker-list hadoop001:9092 --topic first
# 在另一个终端启动一个消费者(以下三种方式,--from-begining表示从头开始消费)
$ bin/kafka-console-consumer.sh --zookeeper hadoop002:2181 --topic first
$ bin/kafka-console-consumer.sh --bootstrap-server hadoop002:9092 --topic first
$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first --from-beginning