kafka單節點遷移到分散式
一 zookeeper 分散式搭建
-
下載zookpeeper:zookeeper-3.14.10.tar.gz
-
根據公司使用
-
將zookeeper-3.4.10.tar.gz在user/local/下解壓
-
建立資料夾mkdir /usr/local/zookeeper-3.4.10/data
-
更名並修改zk配置檔案 a) cd /usr/local/zookeeper-3.4.10/conf/ b) mv zoo_sample.cfg zoo.cfg c) vi zoo.cfg
-
建立zk日誌目錄,並修改日誌指向 mkdir /usr/local/zookeeper-3.4.10/log vi /usr/local/zookeeper-3.4.10/bin/zkEnv.sh
-
按照上面的過程在三個伺服器中搭建zk
-
建立myid Vi /usr/local/zookeeper-3.4.10/data/myid
-
修改zk配置:vi /usr/local/zookeeper-3.4.10/conf/zoo.cfg
-
分別啟動三個zk:/usr/local/zookeeper-3.4.10/bin/zkServer.sh start /usr/local/zookeeper-3.4.10/conf/zoo.cfg
-
檢視zk狀態 /usr/local/zookeeper-3.4.10/bin/zkServer.sh status 檢視到一個leader,其他為follower代表成功
-
停止 /usr/local/zookeeper-3.4.10/bin/zkServer.sh stop
二 .kafka 分散式搭建 13. 根據公司版本下載kafka:kafka_2.12-0.10.2.0.taz 14. 解壓kafka a) cd /usr/local b) tar -zxf kafka_2.12-0.10.2.0.tgz 15. 建立資料資料夾:mkdir /usr/local/kafka_2.12-0.10.2.0/data 16. 修改配置檔案:vi /usr/local/kafka_2.12-0.10.2.0/config/server.properties 17. 按照相同的步驟配置兩個kafka
二 .資料重新分配
-
檢視老kakfa的所有的topic:bin/kafka-topic.sh –zookeeper 192.168.8.107:2181, 192.168.8.107:2181, 192.168.8.107:2181 --list
-
記錄並修改原來kafka的分割槽數目:bin/kafka-topic.sh --alter –zookeeper 192.168.8.107:2181, 192.168.8.107:2181, 192.168.8.107:2181 --partition 20 --topic xx
-
啟動之前準備好的兩個kafka:/usr/local/kafka_2.12-0.10.2.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-0.10.2.0/config/server.properties
-
去zk檢查一下是不是所有節點都上來了。
-
成功後,編寫所需的json檔案:vi expand-cluster-reassignment.json,格式如下
-
分割槽重新分配到副本中:bin/kafka-reassign-partitions.sh –zookeeper 192.168.8.107:2181, 192.168.8.107:2181, 192.168.8.107:2181 --reassignment-json-file expand-cluster-reassignment.json –execute 打印出 Successfully started reassignment of partitions 重新分割槽成功
-
對於需要新建立的topic:bin/kafka-topics.sh --create --zookeeper localhost:2181(zk叢集節點,隔離) --replication-factor 1(叢集個數) --partitions 1(分割槽數,推薦20個) --topic (topic名稱)