kafka+zookeeper集群安装与配置及问题解决(CENTOS)
具体安装配置可参考文章 ##:http://www.cnblogs.com/luotianshuai/p/5206662.html
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 *.*