Zookeeper+kafka集群搭建,问题(zoo.cfg file is running,it‘s probably not running,option ‘UseCompressedOops‘)
1. 下載Zookeeper
1.1 從Zookeeper官網選擇對應版本下載,我這邊是3.4.5,如下圖。
1.2 將下載的壓縮包拉到要安裝集群主機的 /usr/local 目錄(你也可以進入?/usr/local 目錄直接通過命令行下載,這樣如果要部署多臺機器有點麻煩,所以這邊通過WINSCP傳遞)。
1.3 使用 tar -zxvf zookeeper-3.4.5.tar.gz 指令先解壓,同時,使用 mv zookeeper=3.4.5 zk?指令將解壓的文件夾名改為縮寫便于后面操作。
1.4 使用 vi ~/.bashrc 指令打開配置文件進行環境變量配置,配置完后執行 source ~/.bashrc 指令使得配置生效,如下圖。
1.5 進入 Zookeeper的conf目錄( /usr/local/zk/conf ),復制?zoo_sample.cfg 文件并命名為 zoo.cfg ,不改名為zoo.cfg,之后啟動Zookeeper會報錯java.lang.IllegalArgumentException: /usr/local/zk/bin/../conf/zoo.cfg file is missing。更改文件名后進行如下配置。
1.6 配置后,在 /usr/local/zk 目錄下創建data目錄,并進入data目錄,然后使用 vi myid 指令新建一個文件myid并編輯,編寫一個 0 表示當前主機的id,如下圖。
1.7 然后在其它兩臺主機進行如上操作即可,只不過進行1.6步驟時把其它兩個主機id改為對應的1和2。
1.8 然后使用 zkServer.sh start 指令啟動三臺Zookeeper,三臺Zookeeper都啟動后使用 zkServer.sh status 以及 jps 檢查Zookeeper是否正常啟動,如果沒有都啟動,會報錯:error contacting service. it's probably not running. 因為Zookeeper涉及leader選舉,所以一臺啟動后是查看不了狀態的。都啟動后查看狀態,我這邊依然報錯如下圖。
1.9 關閉防火墻以及查看防火墻狀態可去該網頁。
1.10 解決問題后,輸入 zkServer.sh status 可看到每個主機是作為leader還是follow,如下圖。
?
2. Scala下載
2.1 首先去Scala官網下載對應版本的Scala壓縮包,拉到底后選擇相應系統的資源,我這邊的系統是unix,選擇版本是scala-2.11.4,如下圖。
下載后將該壓縮包放入 /usr/local 目錄,進入該目錄解壓scala,并將解壓后的文件夾名改名為 scala,便于后續操作。
2.2 在 ~/.bashrc 文件中配置環境變量,配置后 source ~/.bashrc 使其生效,如下圖。
?
3. kafka集群安裝
3.1?kafka官網下載對應版本的kafka,我這邊是2.9.2-0.8.1,下載后還是解壓至 /usr/local 目錄,并將kafka-2.9.2-0.8.1 文件夾改名為 kafka,便于后續操作。
3.2 配置 kafka/config/server.properties 文件,修改broker.id,按順序設置,第一臺是0,其它是1、2,然后配置zookeeper.connect參數,參數的設置如下圖所示。
?
4. slf4j安裝
4.1 去maven倉庫下載slf4j包后,將該jar包放入kafka的libs目錄下。
?
5. kafka啟動的執行結果及問題
5.1 使用?nohup bin/kafka-server-start.sh config/server.properties & 指令啟動kafka,終端一直停留在ignoring input and appending output to 'nohup.out'。
此時我們ctrl+C暫停程序,然后使用 cat nohup.out 查看log文件,會發現如下提示。
從日志可以看出,系統不能識別虛擬機參數 UseCompressedOops ,這個參數是在 kafka/bin/kafka-run-class.sh 文件中配置,我們找到 UseCompressedOops 參數去掉即可,如下圖。
5.2 使用 bin/kafka-topics.sh --zookeeper 192.168.56.101:2181,192.168.56.102:2181,192.168.56.102:2181 --topic test --replication-factor 1 --partitions 1 --create 指令創建一個測試的topic;接著使用?bin/kafka-console-producer.sh --broker-list 192.168.56.101:9092,192.168.56.102:9092,192.168.56.102:9092 --topic test 指令往該topic發生一個消息以及?bin/kafka-console-consumer.sh --zookeeper 192.168.56.101:2181,192.168.56.102:2181,192.168.56.102:2181 --topic test --from-beginning 指令從該topic接受一個消息,如下圖。
?
6。 附錄
6.1 查看端口對應的進程號
lsof -i:端口號
6.2 根據進程號查看對應的端口信息等
netstat -anop | grep 進程號
6.3 停止kafka
在kafka安裝目錄執行 bin/kafka-server-stop.sh 指令。
6.4 查看kafka話題
bin/kafka-topics.sh --list --zookeeper ip:port
6.5 刪除kafka話題
bin/kafka-topics.sh --zookeeper 192.168.56.101:2181,192.168.56.102:2181,192.168.56.102:2181 --topic testTopic --delete
6.6 查看topic內容
bin/kafka-console-consumer.sh --zookeeper?192.168.56.101:9092,192.168.56.102:9092,192.168.56.103:9092 --topic testTopic --from-beginning
總結
以上是生活随笔為你收集整理的Zookeeper+kafka集群搭建,问题(zoo.cfg file is running,it‘s probably not running,option ‘UseCompressedOops‘)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL给用户设置密码(修改密码)、创
- 下一篇: 搭建第一个SpringBoot工程;Sp