這一講絕了,秒會Linux下Kafka環境搭建及基本使用,還能學點英文

一、kafka單節點單broker環境搭建

系統環境:centos 64位 mini

虛擬機:Virtual Box

如果你不熟悉virtual box的使用,不知道如何安裝centos系統,可以參考之前發佈的文章:

如果你不想用virtual box,也可以使用docker,之前發佈的文章也有介紹,請進入頭條號查看

1、Windows下搭建單節點kafka環境

請參考之前發佈在頭條號上的文章,已經詳細介紹了

1)JDK環境搭建

2)zookeeper環境搭建

3)kafka環境搭建

2、Linux下搭建

1)JDK環境搭建

下載:http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

解壓:

cd /usr/local/src
tar -zxvf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_181 ../

配置:

cd /usr/local/jdk1.8.0_181
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

驗證:java -version

2)zookeeper環境搭建

  • 下載

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz

  • 解壓
cd /usr/local/src
tar -zxvf zookeeper-3.4.12.tar.gz
mv zookeeper-3.4.12 ../
  • 配置環境變量
cd /usr/local/zookeeper-3.4.12
vim /etc/profile
export ZK_HOME=/usr/local/zookeeper-3.4.12 
export PATH=$ZK_HOME/bin:$PATH

source /etc/profile

  • 修改zoo.cfg
cp conf/zoo_sample.cfg conf/zoo.cfg 

vim conf/zoo.cfg
dataDir=/usr/local/zookeeper-3.4.12/data
  • 啟動測試

zkServer.sh start

[root@jikeh zookeeper-3.4.12]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
  • 查看啟動進程信息
[root@jikeh local]# jps
3829 QuorumPeerMain
3848 Jps

[root@jikeh local]# jps -m
3858 Jps -m
3829 QuorumPeerMain /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg

註釋:zookeeper啟動後,會多一個進程QuorumPeerMain

3)kafka環境搭建

  • 下載:
cd /usr/local/src
wget https://archive.apache.org/dist/kafka/1.0.2/kafka_2.12-1.0.2.tgz

註釋:我們使用的版本是0.11

  • 解壓:
tar -zxvf kafka_2.12-1.0.2.tgz
mv kafka_2.12-1.0.2 ../
  • 配置環境變量:

vim /etc/profile

export KAFKA_HOME=/usr/local/kafka_2.12-1.0.2
export PATH=$KAFKA_HOME/bin:$PATH

使得環境變量立即生效:source /etc/profile

  • 配置server.properties
cd /usr/local/kafka_2.12-1.0.2
vim conf/server.properties

server.properties重要參數說明:

broker.id=0//This must be set to a unique integer for each broker
advertised.listeners=PLAINTEXT://192.168.0.108:9092:遠程連接需要配置下
log.dirs=/usr/local/kafka_2.12-1.0.2/kafka-logs//默認的是不會持久化存儲的,這裡必須更改下
zookeeper.connect=//zookeeper的連接地址:根據實際進行配置

3)啟動測試

配置你的hosts:

127.0.0.1 jikeh

啟動zookeeper:

cd /usr/local/zookeeper-3.4.12

bin/zookeeper-server-start.sh config/zookeeper.properties

啟動kafka:

cd /usr/local/kafka_2.12-1.0.2

bin/kafka-server-start.sh config/server.properties

註釋:一個server.properties其實,就可以當做一個broker

jps:查看當前運行的進程

jps -m:查看當前運行進程的詳細信息

二、kafka基本使用

1、創建Topic

1)新建topic

查看命令的幫助信息:直接輸入bin/kafka-topics.sh,然後enter,就可以查看所有的參數信息

bin/kafka-topics.sh --create --zookeeper 192.168.0.108:2181 --replication-factor 1 --partitions 1 --topic test

註釋:參數說明

  • replication-factor:設置副本數
  • partitions:設置分區數

2)查看當前所有的topic列表

bin/kafka-topics.sh --list --zookeeper 192.168.0.108:2181

3)看下topic的詳情信息

查看所有topic:

bin/kafka-topics.sh --describe --zookeeper 192.168.0.108:2181

查看指定topic:

bin/kafka-topics.sh --describe --zookeeper 192.168.0.108:2181 --topic test

2、發送消息

bin/kafka-console-producer.sh --broker-list 192.168.0.108:9092 --topic test

3、消費消息

bin/kafka-console-consumer.sh --zookeeper 192.168.0.108:2181 --topic test --from-beginning

[root@jikeh kafka_2.12-1.0.2]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].

上面的警告信息,表示:這是個廢棄的用法,建議使用新的用法[bootstrap-server]

bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.108:9092 --topic test

註釋:

  • --from-beginning參數的作用:重新開始消費消息,不管是否已經被消費了
  • 對於低版本的kafka需要這樣連接:

bin/kafka-console-consumer.sh --zookeeper 192.168.0.108:2181 --topic test --from-beginning

4、疑惑點

通過以上命令,很多人就有疑問了,到底什麼時候跟zookeeper打交道,什麼時候跟broker打交道呢,這很容易讓人糊塗

創建topic我是跟zookeeper打交道,而生產、消費消息卻與broker打交道,但是低版本的kafka,消費者還是與zookeeper進行打交道的

注意:

低版本的kafka:需要這樣消費

bin/kafka-console-consumer.sh --zookeeper 192.168.0.108:2181 --topic test --from-beginning

高版本的kafka:

bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.108:9092 --topic test --from-beginning

註釋:官網上的文檔,其實是按高版本的kafka來更新文檔的

為什麼會有這種區別呢?

Kafka consumers在早先的版本中,offset默認存儲在ZooKeeper中。

三、kafka客戶端遠程連接測試

這一講絕了,秒會Linux下Kafka環境搭建及基本使用,還能學點英文

如果你理解上有困難,歡迎留言,或者參考視頻教程:


分享到:


相關文章: