Kafka學習之路 (四)Kafka的安裝

zookeeper1:192.168.1.11
zookeeper2:192.168.1.12
zookeeper3:192.168.1.13

kafka1:192.168.1.14
kafka2:192.168.1.15
kafka3:192.168.1.16
kafka3:192.168.1.17

kafka-manager:192.168.1.18

一、下載

下載地址:

http://kafka.apache.org/downloads.html

http://mirrors.hust.edu.cn/apache/

http://zookeeper.apache.org/releases.html

已經安裝好java-1.8

[root@zookeeper1 ~]# yum install java-1.8.0

二、Zookeeper安裝

此處使用版本zookeeper-3.4.10.tar.gz

2.1 上傳解壓縮

# 下載 ZooKeeper
[root@zookeeper1 ~]# wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

# 解壓文件
[root@zookeeper1 ~]# tar -zxf zookeeper-3.4.10.tar.gz -C /opt/
[root@zookeeper1 ~]# cd /opt/
[root@zookeeper1 opt]#  ln -s zookeeper-3.4.10 zookeeper
[root@zookeeper1 opt]#  cd zookeeper
[root@zookeeper1 zookeeper]# cp ./conf/zoo_sample.cfg ./conf/zoo.cfg

2.2 修改配置文件

zookeeper1,zookeeper2,zookeeper3都是同樣的配置

[root@zookeeper1 zookeeper]# vim ./conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/opt/push/kafka-test/zookeeper/data
dataLogDir=/opt/push/kafka-test/zookeeper/logs
clientPort=2181
server.1=192.168.1.11:2888:3888
server.2=192.168.1.12:2888:3888
server.3=192.168.1.13:2888:3888

[root@zookeeper1 zookeeper]# mkdir data logs
[root@zookeeper1 zookeeper]# echo '1' > /opt/zookeeper/data/myid

# 其它兩臺此處需要修改
[root@zookeeper2 zookeeper]# echo '2' > /opt/zookeeper/data/myid

[root@zookeeper3 zookeeper]# echo '3' > /opt/zookeeper/data/myid

三、Kafka安裝

此處使用版本爲kafka_2.11-1.1.0.tgz

3.1 上傳解壓縮

# 下載 Kafka
[root@kafka1 ~]# wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz

# 解壓tar文件
[root@kafka1 ~]# tar -zxf kafka_2.11-1.1.0.tgz.gz -C /opt/
[root@kafka1 ~]# cd /opt/
root@kafka1 opt]# ln -s kafka_2.11-1.1.0 kafka
root@kafka1 opt]# cd kafka

3.2 修改配置文件

進入kafka的安裝配置目錄

[root@kafka1 kafka]# cp config/server.properties  config/server.properties.bak    # 備份kafka默認配置文件

主要關注:server.properties 這個文件即可,我們可以發現在目錄下:

有很多文件,這裏可以發現有Zookeeper文件,我們可以根據Kafka內帶的zk集羣來啓動,但是建議使用獨立的zk集羣

server.properties(broker.id和host.name每個節點都不相同)

//當前機器在集羣中的唯一標識,和zookeeper的myid性質一樣
broker.id=0
//Socket服務器偵聽的地址,當前kafka對外提供服務的端口默認是9092
listeners = PLAINTEXT://your.host.name:9092
//代理將向生產者和消費者做廣告的主機名和端口
advertised.listeners=PLAINTEXT://your.host.name:9092
//這個是borker進行網絡處理的線程數
num.network.threads=3
//這個是borker進行I/O處理的線程數
num.io.threads=8
//發送緩衝區buffer大小,數據不是一下子就發送的,先回存儲到緩衝區了到達一定的大小後在發送,能提高性能
socket.send.buffer.bytes=102400
//kafka接收緩衝區大小,當數據到達一定大小後在序列化到磁盤
socket.receive.buffer.bytes=102400
//這個參數是向kafka請求消息或者向kafka發送消息的請請求的最大數,這個值不能超過java的堆棧大小
socket.request.max.bytes=104857600
//消息存放的目錄,這個目錄可以配置爲“,”逗號分割的表達式,上面的num.io.threads要大於這個目錄的個數這個目錄,
//如果配置多個目錄,新創建的topic他把消息持久化的地方是,當前以逗號分割的目錄中,那個分區數最少就放那一個
log.dirs=/home/hadoop/log/kafka-logs
//默認的分區數,一個topic默認1個分區數
num.partitions=1
//每個數據目錄用來日誌恢復的線程數目
num.recovery.threads.per.data.dir=1
//默認消息的最大持久化時間,168小時,7天
log.retention.hours=168
//這個參數是:因爲kafka的消息是以追加的形式落地到文件,當超過這個值的時候,kafka會新起一個文件
log.segment.bytes=1073741824
//每隔300000毫秒去檢查上面配置的log失效時間
log.retention.check.interval.ms=300000
//設置zookeeper的連接端口
zookeeper.connect=localhost:2181
//設置zookeeper的連接超時時間
zookeeper.connection.timeout.ms=6000

kafka1:

[root@kafka1 kafka]# vim config/server.properties
broker.id=1             # 當前機器在集羣中的唯一標識
listeners=PLAINTEXT://192.168.1.14:9092        # 監聽端口
advertised.listeners=PLAINTEXT://192.168.1.14:9092  # 提供給生產者,消費者的端口號。可以不設置則使用listeners的值
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181/kafka            # 連接zookeeper

kafka2:

[root@kafka2 kafka]# vim config/server.properties
broker.id=2             # 當前機器在集羣中的唯一標識
listeners=PLAINTEXT://192.168.1.15:9092        # 監聽端口
advertised.listeners=PLAINTEXT://192.168.1.15:9092  # 提供給生產者,消費者的端口號。可以不設置則使用listeners的值
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181/kafka            # 連接zookeeper

kafka3:

[root@kafka3 kafka]# vim config/server.properties
broker.id=3             # 當前機器在集羣中的唯一標識
listeners=PLAINTEXT://192.168.1.16:9092        # 監聽端口
advertised.listeners=PLAINTEXT://192.168.1.16:9092  # 提供給生產者,消費者的端口號。可以不設置則使用listeners的值
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181/kafka            # 連接zookeeper

kafka4:

[root@kafka4 kafka]# vim config/server.properties
broker.id=4             # 當前機器在集羣中的唯一標識
listeners=PLAINTEXT://192.168.1.17:9092        # 監聽端口
advertised.listeners=PLAINTEXT://192.168.1.17:9092  # 提供給生產者,消費者的端口號。可以不設置則使用listeners的值
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181/kafka            # 連接zookeeper

四、啓動

3.1 首先啓動zookeeper集羣

所有zookeeper節點都需要執行

[root@zookeeper1 kafka]# ./bin/zkServer.sh start

3.2 啓動Kafka集羣服務

所有kafka節點都需要執行

[root@kafka1 kafka]# ./bin/kafka-server-start.sh config/server.properties
或者:
[root@kafka1 kafka]# ./bin/kafka-server-start.sh -daemon config/server.properties  # 後臺啓動

3.3 創建的topic

[root@kafka1 kafka]# bin/kafka-topics.sh --create --zookeeper kafka1:2181 --replication-factor 3 --partitions 3 --topic topic2

3.4 查看topic副本信息

[root@kafka1 kafka]# ./bin/kafka-topics.sh --describe --zookeeper kafka1:2181 --topic topic2

3.5 查看已經創建的topic信息

[root@kafka1 kafka]# ./bin/kafka-topics.sh --list --zookeeper kafka1:2181

3.6 生產者發送消息

kafka1顯示接收到消息

[root@kafka1 kafka]# ./bin/kafka-console-producer.sh --broker-list kafka1:9092 --topic2

3.7 消費者消費消息

在kafka2上消費消息

[root@kafka2 kafka]# ./bin/kafka-console-consumer.sh --zookeeper kafka1:2181 --from-beginning --topic topic2

五、kafka-manager安裝

官網:https://github.com/yahoo/kafka-manager

Kafka學習之路 (四)Kafka的安裝

[root@kafka-manager ~]# git clone https://github.com/yahoo/kafka-manager.git
[root@kafka-manager ~]# cd kafka-manager

# 部署
[root@kafka-manager kafka-manager]# ./sbt clean dist

解壓縮生成的zip文件

# 啓動
[root@kafka-manager kafka-manager]# bin/kafka-manager
[root@kafka-manager kafka-manager]# bin/kafka-manager -Dconfig.file=/path/to/application.conf -Dhttp.port=8080
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章