小結(jié):
本篇博客寥闪,介紹三種安裝Kafka的方式桶雀,分別為:?jiǎn)喂?jié)點(diǎn)單Broker部署唠叛、單節(jié)點(diǎn)多Broker部署瞎访、集群部署(多節(jié)點(diǎn)多Broker)值朋。實(shí)際生產(chǎn)環(huán)境中使用的是第三種方式叹侄,以集群的方式來(lái)部署Kafka。
Kafka強(qiáng)依賴ZK昨登,如果想要使用Kafka趾代,就必須安裝ZK,Kafka中的消費(fèi)偏置信息丰辣、kafka集群撒强、topic信息會(huì)被存儲(chǔ)在ZK中.
一、Kafka 單節(jié)點(diǎn)部署
Kafka中單節(jié)點(diǎn)部署又分為兩種笙什,一種為單節(jié)點(diǎn)單Broker部署飘哨,一種為單節(jié)點(diǎn)多Broker部署。因?yàn)槭菃喂?jié)點(diǎn)的Kafka琐凭,所以在安裝ZK時(shí)也只需要單節(jié)點(diǎn)即可芽隆。
ZooKeeper官網(wǎng):http://zookeeper.apache.org/
下載Zookeeper并解壓到指定目錄
tar -zxvf zookeeper-3.5.1-alpha.tar.gz -c /opt/zookeeper
進(jìn)入Zookeeper的config目錄下
$ cd /opt/zookeeper/conf
拷貝zoo_sample.cfg文件重命名為zoo.cfg,然后修改dataDir屬性
數(shù)據(jù)的存放目錄dataDir=/home/hadoop/zkdata# 端口,默認(rèn)就是2181clientPort=2181
配置環(huán)境變量
Zookeeper Environment Variableexport ZOOKEEPER_HOME=/opt/zookeeperexport PATH=ZOOKEEPER_HOME/bin
Zookeeper 啟動(dòng)停止命令
zkServer.sh stop
安裝完Zookeeper后胚吁,輸入命令啟動(dòng)后牙躺,jps中并沒(méi)有查看到QuorumPeerMain進(jìn)程,說(shuō)明沒(méi)有啟動(dòng)成功腕扶,進(jìn)入Zookeeper的log目錄下查看日志孽拷,發(fā)現(xiàn)報(bào)了一個(gè)錯(cuò)誤,如下
AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
原因:zookeeper的管理員端口被占用
解決:筆者使用的zookeeper的版本為3.5.1蕉毯,該版本中有個(gè)內(nèi)嵌的管理控制臺(tái)是通過(guò)jetty啟動(dòng)乓搬,會(huì)占用8080 端口思犁,需要修改配置里的“admin.serverPort=8080”代虾,默認(rèn)8080沒(méi)有寫出來(lái),只要改為一個(gè)沒(méi)使用的端口即可激蹲,例如:admin.serverPort=8181
1.Kafka 單節(jié)點(diǎn)單Broker部署及使用
部署架構(gòu)
配置Kafka
官網(wǎng)下載:http://kafka.apache.org/quickstart
配置kafka環(huán)境變量
進(jìn)入kafka的config目錄下棉磨,有一個(gè)server.properties,添加如下配置
broker的全局唯一編號(hào)学辱,不能重復(fù)broker.id=0監(jiān)聽(tīng)listeners=PLAINTEXT://:9092日志目錄log.dirs=log.dirs=/home/hadoop/app/kafka/tmp/kafka-logs 配置zookeeper的連接(如果不是本機(jī)乘瓤,需要該為ip或主機(jī)名)zookeeper.connect=localhost:2181
啟動(dòng)Zookeeper
[hadoop@Master ~]$ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
啟動(dòng)Kafka
KAFKA_HOME/config/server.properties
打印的日志信息沒(méi)有報(bào)錯(cuò),可以看到如下信息
[Kafka Server 0], started (kafka.server.KafkaServer)
但是并不能保證Kafka已經(jīng)啟動(dòng)成功策泣,輸入jps查看進(jìn)程衙傀,如果可以看到Kafka進(jìn)程,表示啟動(dòng)成功
[hadoop@Master ~] jps -m9472 Jps -m9173 Kafka /opt/kafka/config/server.properties8589 QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
創(chuàng)建topic
[hadoop@Master ~]$ kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
參數(shù)說(shuō)明:
–zookeeper:指定kafka連接zk的連接url萨咕,該值和server.properties文件中的配置項(xiàng){zookeeper.connect}一樣
–replication-factor:指定副本數(shù)量
–partitions:指定分區(qū)數(shù)量
–topic:主題名稱
查看所有的topic信息
[hadoop@Master ~]$ kafka-topics.sh --list --zookeeper localhost:2181test
啟動(dòng)生產(chǎn)者
[hadoop@Master ~]$ kafka-console-producer.sh --broker-list localhost:9092 --topic test
啟動(dòng)消費(fèi)者
[hadoop@Master ~]$ kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
2.Kafka 單節(jié)點(diǎn)多Broker部署及使用
部署架構(gòu)
配置Kafka
參考官網(wǎng):http://kafka.apache.org/quickstart
拷貝server.properties三份
[hadoop@Master ~] cp server.properties server-1.properties [hadoop@Master config]
cp server.properties server-3.properties
修改server-1.properties文件
broker的全局唯一編號(hào)统抬,不能重復(fù)broker.id=1 監(jiān)聽(tīng)listeners=PLAINTEXT://:9093 日志目錄log.dirs=/home/hadoop/kafka-logs-1
修改server-2.properties文件
修改server-3.properties文件
broker的全局唯一編號(hào),不能重復(fù)broker.id=3 監(jiān)聽(tīng)listeners=PLAINTEXT://:9094 日志目錄log.dirs=/home/hadoop/kafka-logs-3
啟動(dòng)Zookeeper
[hadoop@Master ~]$ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
啟動(dòng)Kafka(分別啟動(dòng)server1危队、2聪建、3)
KAFKA_HOME/config/server-1.properties
KAFKA_HOME/config/server-2.properties
KAFKA_HOME/config/server-3.properties
查看進(jìn)程
[hadoop@Master ~] jps -m11905 Kafka /opt/kafka/config/server-2.properties11619 Kafka /opt/kafka/config/server-1.properties12488 Jps -m8589 QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg12191 Kafka /opt/kafka/config/server-3.properties
創(chuàng)建topic(指定副本數(shù)量為3)
[hadoop@Master ~]$ kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topicCreated topic "my-replicated-topic".
查看所有的topic信息
[hadoop@Master ~]$ kafka-topics.sh --list --zookeeper localhost:2181my-replicated-topictest
查看某個(gè)topic的詳細(xì)信息
[hadoop@Master ~]$ kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topicTopic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
啟動(dòng)生產(chǎn)者
$ kafka-console-producer.sh --broker-list localhost:9093,localhost:9094,localhost:9095 --topic my-replicated-topic
啟動(dòng)消費(fèi)者
$ kafka-console-consumer.sh --zookeeper localhost:2181 --topic my-replicated-topic --from-beginning
原文:https://blog.csdn.net/qq_32297447/article/details/80792077
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接茫陆!