kafka相關操做

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只能保證同一分區上的數據是按順序讀取的,

能夠經過某種方式,設置某一類型的數據被髮送到同一分區。

相關文章
相關標籤/搜索