kafka+zookeeper安装配置
安裝Zookeeper
參考這篇:https://my.oschina.net/duanvincent/blog/914794
Kafka
配置
在配置文件server.properties修改如下內容:
?
啟動停止
#進入$KAFKA_HOME?
#啟動
sudo bin/kafka-server-start.sh config/server.properties &
#停止
bin/kafka-server-stop.sh
生產/消費消息
#創建topic
bin/kafka-topics.sh --create --zookeeper 192.168.152.45:2182 --replication-factor 1 --partitions 1 --topic test
#生產消息
bin/kafka-console-producer.sh --broker-list 192.168.152.45:9092 --topic test
#消費消息
設置多個broker集群
到目前,我們只是單一的運行一個broker,,沒什么意思。對于Kafka,一個broker僅僅只是一個集群的大小, 所有讓我們多設幾個broker.
首先為每個broker創建一個配置文件:
現在編輯這些新建的文件,設置以下屬性:
?
broker.id是集群中每個節點的唯一且永久的名稱,我們修改端口和日志分區是因為我們現在在同一臺機器上運行,我們要防止broker在同一端口上注冊和覆蓋對方的數據。
我們已經運行了zookeeper和剛才的一個kafka節點,所有我們只需要在啟動2個新的kafka節點。
> bin/kafka-server-start.sh config/server-1.properties & ... > bin/kafka-server-start.sh config/server-2.properties & ...現在,我們創建一個新topic,把備份設置為:3
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic好了,現在我們已經有了一個集群了,我們怎么知道每個集群在做什么呢?運行命令“describe topics”
[root@slave2 kafka_2.11-0.11.0.1]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.152.45:2181 --topic my-replicated-topic Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1這是一個解釋輸出,第一行是所有分區的摘要,每一個線提供一個分區信息,因為我們只有一個分區,所有只有一條線。
"leader":該節點負責所有指定分區的讀和寫,每個節點的領導都是隨機選擇的。
"replicas":備份的節點,無論該節點是否是leader或者目前是否還活著,只是顯示。
"isr":備份節點的集合,也就是活著的節點集合。
我們運行這個命令,看看一開始我們創建的那個節點:
沒有驚喜,剛才創建的topic(主題)沒有Replicas,所以是0。
讓我們來發布一些信息在新的topic上:
現在,消費這些消息。
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic... my test message 1 my test message 2 ^C我們要測試集群的容錯,kill掉leader,Broker1作為當前的leader,也就是kill掉Broker1。
> ps | grep server-1.properties 7564 ttys002 0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java... > kill -9 7564備份節點之一成為新的leader,而broker1已經不在同步備份集合里了。
> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 1,2,0 Isr: 2,0但是,消息仍然沒丟:
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic ... my test message 1 my test message 2 ^C使用 Kafka Connect 來 導入/導出 數據
從控制臺寫入和寫回數據是一個方便的開始,但你可能想要從其他來源導入或導出數據到其他系統。對于大多數系統,可以使用kafka Connect,而不需要編寫自定義集成代碼。Kafka Connect是導入和導出數據的一個工具。它是一個可擴展的工具,運行連接器,實現與自定義的邏輯的外部系統交互。在這個快速入門里,我們將看到如何運行Kafka Connect用簡單的連接器從文件導入數據到Kafka主題,再從Kafka主題導出數據到文件,首先,我們首先創建一些種子數據用來測試:
echo -e "foo\nbar" > test.txt接下來,我們開始2個連接器運行在獨立的模式,這意味著它們運行在一個單一的,本地的,專用的進程。我們提供3個配置文件作為參數。第一個始終是kafka Connect進程,如kafka broker連接和數據庫序列化格式,剩下的配置文件每個指定的連接器來創建,這些文件包括一個獨特的連接器名稱,連接器類來實例化和任何其他配置要求的。
> bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties?
總結
以上是生活随笔為你收集整理的kafka+zookeeper安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解javascript原型和闭包(
- 下一篇: 网站使用CloudFlare