CentOS7安裝和使用kafka
轉載請註明出處 :CentOS7安裝和使用kafka
環境準備
安裝kafka之前我們需要做一些環境的準備
1、centOS7系統環境
2、jdk環境
3、可用的zookeeper叢集服務
安裝jdk
安裝Kafka
從官網下載Kafka 安裝包,解壓安裝:
tar zxvf kafka_2.11-2.0.0.tgz
mv kafka_2.11-2.0.0.tgz
cd kafka
解壓好既安裝完成。
安裝zookeeper服務
方案一使用kafka自帶的kafka
適用於測試等小型場景或者單點kafka
使用kafka安裝包中的指令碼啟動單節點Zookeeper 例項:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
方案二獨立安裝zookeeper服務
最靈活的方式,適用於單點和多節點kafka
下載ZooKeeper
要在您的計算機上安裝ZooKeeper框架,請訪問以下連結並下載最新版本的ZooKeeper。
http://zookeeper.apache.org/releases.html
現在,最新版本的ZooKeeper是3.4.6(ZooKeeper-3.4.6.tar.gz)。
提取tar檔案
使用以下命令提取tar檔案
$ cd opt/ $ tar -zxf zookeeper-3.4.6.tar.gz $ cd zookeeper-3.4.6 $ mkdir data
建立配置檔案
使用命令vi conf/zoo.cfg 開啟名為 conf/zoo.cfg 的配置檔案,並將所有以下引數設定為起點。
$ vi conf/zoo.cfg
tickTime=2000
dataDir=/path/to/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
一旦配置檔案成功儲存並再次返回終端,您可以啟動zookeeper伺服器。
啟動ZooKeeper伺服器
$ bin/zkServer.sh start
執行此命令後,您將得到如下所示的響應 -
$ JMX enabled by default $ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg $ Starting zookeeper ... STARTED
啟動CLI進入操作命令介面
$ bin/zkCli.sh
輸入上面的命令後,您將被連線到zookeeper伺服器,並將獲得以下響應。
Connecting to localhost:2181
................
................
................
Welcome to ZooKeeper!
................
................
WATCHER::
WatchedEvent state:SyncConnected type: None path:null
[zk: localhost:2181(CONNECTED) 0]
停止Zookeeper伺服器
連線伺服器並執行所有操作後,可以使用以下命令停止zookeeper伺服器 -
$ bin/zkServer.sh stop
成功安裝ZooKeeper。
##方案三使用hadoop叢集cdh等套件中的zookeeper
如果已經有hadoop叢集,一般都已經有zookeeper叢集服務了。
例如zookeeper叢集服務ip如下:
192.168.11.90:2181
192.168.11.91:2181
192.168.11.92:2181
kafka可以直接配置使用。
如下:
配置zookeeper
config/server.properties是kafka安裝目錄中的配置檔案
vim config/server.properties
裡面的 zookeeper.connect
修改為:
zookeeper.connect=192.168.11.90:2181,192.168.11.91:2181,192.168.11.92:2181
使用kafka
啟動伺服器
通過以下命令來啟動伺服器
$ bin/kafka-server-start.sh config/server.properties
伺服器啟動後,您會在螢幕上看到以下響應:
$ bin/kafka-server-start.sh config/server.properties
INFO KafkaConfig values:
request.timeout.ms = 30000
log.roll.hours = 168
inter.broker.protocol.version = 0.9.0.X
log.preallocate = false
security.inter.broker.protocol = PLAINTEXT
....
建立topic
使用kafka-topics.sh 建立單分割槽單副本的topic test:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
檢視topic:
bin/kafka-topics.sh --list --zookeeper localhost:2181
test
或者 使用ip建立
bin/kafka-topics.sh --create --zookeeper 192.168.11.90:2181/kafka100 --topic topic-test3 --replication-factor 2 --partitions 4 --config key=value
生產訊息
使用kafka-console-producer.sh 傳送訊息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
然後輸入想要傳送的訊息例如
>Hello world!
>Hello Kafka!
消費訊息
使用kafka-console-consumer.sh 接收訊息並在終端列印:
老版本的kafka使用如下命令消費
bin/kafka-console-consumer.sh --zookeeper 192.168.11.90:2181 --topic test --from-beginning
新版本kafka使用如下消費(注意埠)
bin/kafka-console-consumer.sh --bootstrap-server 192.168.11.90:9092 --topic test --from-beginning
輸出如下:
可能遇到的問題–zookeeper is not a recognized option
原因
對於消費者,kafka中有兩個設定的地方:對於老版本的消費者,由–zookeeper引數設定;對於新版本的消費者,由–bootstrap-server引數設定
如果使用了–zookeeper引數,那麼consumer的資訊將會存放在zk之中
檢視的方法是使用bin/zookeeper-client,然後
ls /consumers/[group_id]/offsets/[topic]/[broker_id-part_id]
這個是檢視某個group_id的某個topic的offset
如果使用了–bootstrap-server引數,那麼consumer的資訊將會存放在kafka之中
《Kafka權威指南》中是這樣描述的
停止伺服器
執行所有操作後,可以使用以下命令停止伺服器
$ bin/kafka-server-stop.sh config/server.properties
叢集配置
單機多broker 叢集配置
利用單節點部署多個broker。 不同的broker 設定不同的id,監聽埠及日誌目錄。 例如:
cp config/server.properties config/server-1.properties
編輯配置:
config/server-1.properties:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
啟動Kafka服務:
bin/kafka-server-start.sh config/server-1.properties &
啟動多個服務,按上文類似方式產生和消費訊息。序號1對應增加。
多機多broker 叢集配置
分別在多個節點按上述方式安裝Kafka,配置啟動多個Zookeeper 例項。 例如: 在192.168.11.90,192.168.11.91,192.168.11.92三臺機器部署,Zookeeper配置如下:
initLimit=5
syncLimit=2
server.1=192.168.11.90:2888:3888
server.2=192.168.11.91:2888:3888
server.3=192.168.11.92:2888:3888
分別配置多個機器上的Kafka服務 設定不同的broke id,zookeeper.connect設定如下:
zookeeper.connect=192.168.11.90:2181,192.168.11.91:2181,192.168.11.92:2181
轉載請註明出處 :CentOS7安裝和使用kafka
參考連結:
http://kafka.apache.org/quickstart
https://www.w3cschool.cn/apache_kafka/apache_kafka_installation_steps.html
https://www.mtyun.com/library/how-to-install-kafka-on-centos7