kafka+zookeeper叢集安裝與配置(CENTOS7環境)及開發中遇到的問題解決
kafka+zookeeper叢集安裝與配置及問題解決(CENTOS)
ZOOKEEPER 叢集主要配置(zoo.cfg) :
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/spark/zookeeper-3.4.6/zkdata
dataLogDir=/home/hadoop/spark/zookeeper-3.4.6/zkdatalog
clientPort=12181
server.1=10.201.60.24:12888:13888
server.2=10.201.60.25:12888:13888
server.3=10.201.60.26:12888:13888
ZOOKEEPER 執行: 在每臺機器上執行
server1 echo "1" > /home/hadoop/spark/zookeeper-3.4.6/zkdata/myid
server2 echo "2" > /home/hadoop/spark/zookeeper-3.4.6/zkdata/myid
server3 echo "3" > /home/hadoop/spark/zookeeper-3.4.6/zkdata/myid
./bin/zkServer.sh start
./bin/zkServer.sh status
./bin/zkServer.sh stop
ZOOKEEPER 叢集配置遇到的主要問題:
1、 ./bin/zkServer.sh status 執行後 顯示ZOOKEEPER沒有正常執行
(1)通過檢視zookeeper.out 日誌發現叢集中有兩臺機器繫結埠失敗
(2)換掉zoo.cfg中的埠號,問題依然存在
(3)關閉iptables防火牆也不行 **** centos 下有firwall防火牆,使用 systemctl stop firewalld.service 命令關閉後 程式正常 ****
2、在同一臺機器上scp 時 不小心把 25和26的myid搞反了,導致起不來
KAFKA 叢集主要配置(server.properties) :
broker.id= 0 1 2 等等,每臺機不能衝突 zookeeper.connect=10.201.60.24:2181,10.201.60.25:2181,10.201.60.26:2181
KAFKA 執行 :在每臺機器上執行
./kafka-server-start.sh -daemon ../config/server.properties
./kafka-server-stop.sh
SPARK開發中遇到的與KAFKA問題:
1、生產者發主題資料時報java.nio.channels.ClosedChannelException 是由於KAFKA預設配置好後,註冊到zk 中的是機器名,並非IP地址,當生產者客戶端從ZK獲取到BROKER時,也是取到了機器名,當生產者客戶端(尤其是WINDOW機器)無法解析此機器名時(/etc/hosts),就會報這個錯 解決辦法:在kafka server.properties 配置中配置如下(各機器不同): listeners=PLAINTEXT://10.201.60.25:9092 advertised.listeners=PLAINTEXT://10.201.60.25:9092
2、遇到了叢集中有些KAFKA莫名妙停止服務的情況,firwall防火牆關閉後 也有可能自動打開了,這些問題待解決 臨時用重啟的方法先解決著
3、SPARK在實時計算時偶爾會出現如下異常
Caused by: java.lang.Exception: Could not compute split, block input-0-1510799929000 not found
at org.apache.spark.rdd.BlockRDD.compute(BlockRDD.scala:50)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
懷疑與SPARK STREAM的checkpoint 機制有關,刪除掉HADOOP上的checkpoint目錄:
hadoop fs -rm -r /kdap*
Deleted /kdap_sec_checkpoint
問題依舊。 沒有辦法,只好將KAFKA和ZOOKEEPER停止,將裡面的日誌全刪了,再次刪除checkpoint目錄後,程式得到正常執行
cd /home/hadoop/spark/kafka_2.12-0.11.0.0/bin
./kafka-server-stop.sh
cd /home/hadoop/spark/zookeeper-3.4.6/bin
./zkServer.sh stop
cd /home/hadoop/spark/kafka_2.12-0.11.0.0/logs/
rm *.*