1. 程式人生 > >kafka+zookeeper叢集安裝與配置(CENTOS7環境)及開發中遇到的問題解決

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 *.*