nohup zkServer.sh start $ZOOKEEPER_HOME/conf/zoo.cfg &
nohup kafka-server-start.sh $KAFKA_HOME/config/server.properties &
一直报错,进程jps闪退
排查过程:去kafka安装路径下的log/server.log中定位kafka启动过程报错原因
解决方案:
此次的kakfa闪退有两个原因:一个原因是kafka的dir.log路径不能跟kafka的运行日志路径相同,否则报错:
ERROR [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
org.apache.kafka.common.KafkaException: Found directory /home/hadoop/app/kafka_2.12-2.8.2/logs/~, '~' is not in the form of topic-partition or topic-partition.uniqueId-delete (if marked for deletion).
Kafka's log directories (and children) should only contain Kafka topic data.
第二种原因就是:kafka的端口号是9092,即便kafka闪退,jps进程不在,也报错如下:
ERROR [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer):Address already in use
后来使用命令:sudo netstat -atunlp | grep 9092
tcp6 0 0 :::9092 :::* LISTEN 1082/clickhouse-ser
上网查找后发现是clickhouse的tcp_port端口号很容易与其他端口号冲突。包括9000,9092。clickhouse的主配置文件一般是在/etc/clickhosue-server/config.xml中,发现报错原因就是clickhouse的tcp_port端口号设置是9092跟kafka端口号冲突,于是修改为9002.
两外重启kafka也是关键的,步骤如下:
1.kafka目录下的kafka-logs存储消息的路径清空(rm -r *)
2.zookeeper目录下的data,logs文件夹清空(rm -r *),除了data下的myid文件不需要外
3.从zookeeper下的bin/zkCli.sh进入zookeeper客户端,如下操作:
ls /
ls /brokers/
deleteall /brokers
quit
4.kill -9 kafka pid
5.kill -9 zookeeper pid
参考连接: