kafka2.4.0集群配置

kafka版本:2.4.0 scala版本:2.12

配置

​ 添加环境变量,每台服务器都需修改

# vi /etc/profile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m68f28si-1583768591006)(C:\Users\ChengCihang\AppData\Roaming\Typora\typora-user-images\image-20200309221105976.png)]

​ 修改配置文件,每台服务器都需修改

# vi /usr/local/kafka_2.12-2.4.0/config/server.properties

// 修改下方配置
// 1 节点值
broker.id=1 // 不同机器取值不同,cluster1是1,cluster2是2

// 2 日志路径
log.dirs=/home/hadoop_files/hadoop_logs/kafka

// 3 zookeeper 集群地址
zookeeper.connect=cluster1:2181,cluster2:2181,cluster3:2181

// 4 监听设置对应机器的ip地址
advertised.listeners=PLAINTEXT://172.31.42.166:9092

//hostname和端口是用来建议给生产者和消费者使用的,如果没有设置,将会使用listeners的配置,
//如果listeners也没有配置,将使用java.net.InetAddress.getCanonicalHostName()来获取
//这个hostname和port.

​ 保存退出,更新环境配置

#source /etc/profile

​ 在所有服务器上创建文件夹并修改文件权限

# mkdir -p /home/hadoop_files/hadoop_logs/kafka
# chown -R hadoop:hadoop /home/hadoop_files
# chown -R hadoop:hadoop /usr/local/kafka_2.12-2.4.0

​ 复制分发文件夹

# scp -r /usr/local/kafka_2.12-2.4.0 cluster2:/usr/local/
# scp -r /usr/local/kafka_2.12-2.4.0 cluster3:/usr/local/

​ 修改其他服务器上的配置项

测试与问题

在hadoop用户下启动kafka之前先保证zookeeper启动。

在所有服务器上执行kafka启动命令:

$ kafka-server-start.sh /usr/local/kafka_2.12-2.4.0/config/server.properties & //启动后回车

1.创建topic
kafka2.4.0集群配置_第1张图片

2.查看topic
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cg7pUAx4-1583768591008)(C:\Users\ChengCihang\AppData\Roaming\Typora\typora-user-images\image-20200309230049677.png)]

3.查看topic详细信息
kafka2.4.0集群配置_第2张图片

4.发送接收

在cluster1上创建生产者会话

$ kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka

在cluster1上输入“hello kafka”

在cluster2上创建消费者会话

$ kafka-console-consumer.sh --bootstrap-server cluster1:2181,cluster2:2181,cluster3:2181 --topic mykafka --from beginning

出错:消费者无法消费数据

解决:由于配置了advertised.listeners,每个消费者只能从各自的监听端口监听数据,cluster2的消费者命令为

$ kafka-console-consumer.sh --bootstrap-server cluster2:9092 --topic mykafka --from-beginning

cluster2成功消费:
kafka2.4.0集群配置_第3张图片
按ctrl+c退出会话。

出错:关闭kafka命令出错,No kafka server to stop

[hadoop@cluster3 local]$ kafka-server-stop.sh 
No kafka server to stop
[hadoop@cluster3 local]$ 

解决:修改kafka-server-stop.sh,将

PIDS=$(ps ax | grep -i 'kafka.Kafka' | grep java | grep -v grep | awk '{print $1}')

替换为

PIDS=$(jps -lm | grep -i 'kafka.Kafka'| awk '{print $1}')

你可能感兴趣的:(大数据工程平台搭建)