三臺服務器
- 準備工作
- 安裝java環境
- 搭建zookeeper集羣
- 搭建kafka集羣
服務器配置
主機名 | IP地址 | 硬件配置 |
---|---|---|
kafka-1 | 192.168.1.162 | 24CPU、46G內存、600G存儲 |
kafka-2 | 192.168.1.166 | 24CPU、64G內存、600G存儲 |
kafka-3 | 192.168.1.170 | 24CPU、64G內存、600G存儲 |
主機名 | IP地址 | zookeeper | myid |
---|---|---|---|
kafka-1 | 192.168.1.162 | server.1 | 1 |
kafka-2 | 192.168.1.166 | server.2 | 2 |
kafka-3 | 192.168.1.170 | server.3 | 3 |
安裝包準備
JDK 1.8.0_131
zookeeper-3.4.14.tar
kafka_2.11-2.0.0 .tgz
下載方式 先下載 安裝JDK 官網下
zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
kafka
官網選擇版本下載 http://kafka.apache.org/downloads.html
wget https://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
設置java 環境變量
export JAVA_HOME=/usr/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
3. 搭建zookeeper集羣
在每臺主機上執行下面步驟:
將安裝包移到/usr/local目錄下
mv zookeeper-3.4.12.tar /usr/local
tar -zxvf zookeeper-3.4.12.tar
mv zookeeper-3.4.12 zookeeper
配置zookeeper環境變量,首先打開profile文件
vi /etc/profile
#set zookeeper environment
export ZK_HOME=/usr/local/zookeeper
export PATH=$ZK_HOME/bin:$PATH
source /etc/profile
打開zookeeper配置文件 複製一份配置文件
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
vi /usr/local/zookeeper/zoo.cfg
#修改數據文件夾路徑
dataDir=/usr/local/zookeeper/data
#在文件末尾添加
server.1=192.168.1.162:2888:3888
server.2=192.168.1.168:2888:3888
server.3=192.168.1.170:2888:3888
#其它不變
創建數據文件夾 和 創建myid文件
myid不是文件夾,可以直接編輯,主要是保證集羣的ID不一樣 myid分配如文章開頭 在每臺KAFKA上都輸入對應的數字
mkdir /usr/local/zookeeper/data
mkdir /usr/local/zookeeper/data/myid
##kafka-1主機myid
[root@sit-gather-kafka1 data]# echo "1" > myid
[root@sit-gather-kafka1 data]# cat myid
1
[root@sit-gather-kafka1 data]#
在每臺電腦上啓動zookeeper
/usr/local/zookeeper/bin/zkServer.sh start
配置環境變量後 可以直接命令啓動
啓動每臺服務器的ZK 報錯,查看
[root@sit-gather-kafka1 /]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
解決辦法 關閉防火牆
systemctl stop firewalld.service
4. 搭建kafka集羣
準備安裝包 kafka_2.11-2.0.0 .tgz
在每臺主機上執行下面步驟
將安裝包移到/usr/local目錄下
移動 解壓 重命名
mv kafka_2.11-2.0.0.tgz /usr/local
tar -zxvf kafka_2.11-2.0.0 .tgz
mv kafka_2.11-2.0.0 kafka
配置kafka環境變量,首先打開profile文件
vim /etc/profile
#set kafka environment
export KAFKA_HOME=/usr/local/kafka
PATH=${KAFKA_HOME}/bin:$PATH
source /etc/profile
在kafka-1主機中修改server.properties配置文件
vim /usr/local/kafka/config/server.properties
修改配置如下(IP地址應該根據實際情況填寫) broker.id=3
broker.id=1
listeners=PLAINTEXT://192.168.1.162:9092
zookeeper.connect=192.168.1.162:2181,192.168.1.166:2181,192.168.1.170:2181
啓動KAFK 不要在安裝目錄config下這樣啓動服務,無法啓動
/usr/local/kafka/bin/kafka-server-start.sh -daemon config/server.properties
[root@sit-gather-kafka3 kafka]# ./bin/kafka-server-start.sh -daemon config/server.properties
[root@sit-gather-kafka3 kafka]# jps
15416 Jps
10314 QuorumPeerMain
15306 Kafka
查看 啓動 三臺服務器一切正常
在一臺機器上創建主題 topic
[root@sit-gather-kafka3 kafka]# /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.162:2181 --replication-factor 3 --partitions 1 --topic test-topic
Created topic "test-topic".
在另一臺服務器查看主題
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.1.162:2181 --topic test-topic
[root@sit-gather-kafka1 kafka]# /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.1.162:2181 --topic test-topic
Topic:test-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test-topic Partition: 0 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
至此 三臺服務器在生產環境都配置成功
詳細參考 1 https://www.jianshu.com/p/bdd9608df6b3 2 https://www.cnblogs.com/luotianshuai/p/5206662.html