kafka安装apache
下载 json
wget http://apache.gree.com/apache/kafka/1.0.2/kafka_2.11-1.0.2.tgzbootstrap
tar -zxvf kafka_2.11-1.0.2.tgz -C /usr/local/并发
mv /usr/local/kafka_2.11-1.0.2 /usr/local/kafkaui
cd /usr/local/kafka/config/this
vi server.propertiesspa
broker.id=0 这里的id每一个kafka的id都是惟一的命令行
host.name=10.2.xxx.xx 设置当前机器的IP日志
zookeeper.connect=10.2.xxx.xx:2181,10.2.xx.xxx:2181,10.2.xxx.xx:2181 设置zookeeper的地址server
log.dirs=/tmp/kafka0-logs 设置日志地址,不一样机器上的地址可能须要区别一下,避免broker启动不起来
其余节点配置相似
kafka指令
启动kafka
/usr/local/kafka/bin/kafka-server-start.sh --daemon /usr/local/kafka/config/server.properties 1>/dev/null 2>&1 &
添加--daemon让kafka在后台以守护进程的方式启动,不会自动停掉
建立topic,名为netSwitch ,分区数为3(--partition 3),总备份数为2(--replication-factor 2),备份数不可超过机器的数量,分区数能够大于机器的数量
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper HDP-master,HDP-slave1,HDP-slave2 --replication-factor 2 --partitions3 --topic netSwitch
kafka-topics --create --zookeeper HDP-master --replication-factor 2 --partitions3 --topic netSwitch
查看topic的描述
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper HDP-master,HDP-slave1,HDP-slave2 --topic netSwitch
Topic:netSwitch PartitionCount:3 ReplicationFactor:2
Topic:netSwitch Partition:0 Leader:2 Replicas: 2,0 Isr: 2,0
Topic:netSwitch Partition:1 Leader:0 Replicas: 0,1 Isr: 0,1
Topic:netSwitch Partition:2 Leader:1 Replicas: 1,2 Isr: 1,2
其中Leader表示数据所在节点,在其余节点上的数据为备份数据
列出全部topic
/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper HDP-master,HDP-slave1,HDP-slave2
kafka的topic数据保存在以前配置的日志文件目录下(server.properties文件中log.dirs的值,默认为/tmp/kafka0-logs),若是要删除某个topic,须要删除日志目录下对应的文件夹
查看已注册到zookeeper中的broker个数
/usr/lcoal/zookeeper/bin/zkCli.sh 进入zookeeper命令行
ls /brokers/ids 列出已注册的brokers的id
out:[1,2] id为1,2的节点注册正常,0节点异常?
quit 退出zookeeper命令行
当部分broker注册异常时可尝试修改log.dirs的值为不一样目录名 后 正常启动
修改topic的分区数
kafka-topics --alter --zookeeper 10.4.56.22:9013/kafka --topic eSafenet --partitions 4
修改topic的备份数(将已有数据进行从新 分布配置)
(1)查看topic的分区备份状况
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper HDP-master,HDP-slave1,HDP-slave2 --topic netSwitch
Topic:netSwitch PartitionCount:3 ReplicationFactor:1
Topic:netSwitch Partition:0 Leader:2 Replicas: 2 Isr: 2
Topic:netSwitch Partition:1 Leader:0 Replicas: 0 Isr: 0
Topic:netSwitch Partition:2 Leader:1 Replicas: 1 Isr: 1
(2)根据分区备份信息,编辑新的配置
vi ./increase-replication-factor.json
{"version":1,
"partitions":[
{"topic":"netSwitch","partition":0,"replicas":[2,0]},
{"topic":"netSwitch","partition":1,"replicas":[0,1]},
{"topic":"netSwitch","partition":1,"replicas":[1,2]}
]}
kafka-reassign-partitions --zookeeper HDP-master --reassignment-json-file ./increase-replication-factor.json --execute
(3)查看重分配的执行状况
kafka-reassign-partitions --zookeeper HDP-master --reassignment-json-file ./increase-replication.json --verify
清空topic中的数据
kafka-topics --zookeeper HDP-master --delete --topic netSwitch
发送消息到broker (生产者)
/usr/local/bin/kafka-console-producer.sh --broker-list HDP-master:9092 --topic netSwitch
>this is the first hdp-master test message
>this is the second hdp-master test message
>three of it
^c ctrl+c 退出并发送消息
从broker消费消息 (消费者)
/usr/local/bin/kafka-console-consumer.sh --zookeeper HDP-master,HDP-salve1,HDP-slave2 --from-beginning --topic netSwitch
this is the first hdp-master test message
three of it
this is the second hdp-master test message
kafka-console-consumer --bootstrap-server 10.2.24.15:9092 --topic netSwitch
能够看出消费kafka的topic数据时,不必定是按顺序来的,由于这些数据在不一样的partition分区,kafka只能保证同一分区上的数据是按顺序读取的,
能够经过某种方式,设置某一类型的数据被发送到同一分区。