配置kafka
前提:在master01中先操作以下步骤。
1.将kafka压缩包放到路径/opt/download/spark
2.解压到路径/opt/software/spark。当前路径为/opt/download/spark
//解压kafka
tar -zxf kafka_2.11-2.4.1.tgz -C /opt/software/spark
3.切换路径到/opt/software/spark ,并将解压过后的kafka_2.11-2.4.1命名为kafka211241
mv kafka_2.11-2.4.1 kafka211241
4.切换路径至/opt/software/spark/kafka211241 ,新建一个文件夹kfglogs。如图所示:
5.紧接着进入config文件夹下。编辑server.properties文件。更改以下内容:(后续记得将剩下的节点的此文件的broker.id分别改成2,3,4;listeners=PLAINTEXT中分别改成剩下的节点主机名master02,slave01,slave02)
broker.id=1
listeners=PLAINTEXT://master01:9092
log.dirs=/opt/software/spark/kafka211241/kfklogs/
zookeeper.connect=master01:2181,master02:2181,slave01:2181,slave02:2181/kafka
6.配置kafka环境变量。编辑/etc/profile.d/my.sh
#KAFKA_HOME
export KAFKA_HOME=/opt/software/spark/kafka211241
export PATH=$PATH:$KAFKA_HOME/bin
7.激活环境变量
source /etc/profile
8.使用allsend.sh拷贝kafka211241及环境变量my.sh给其他节点
//先拷贝kafka211241
./allsend.sh /opt/software/spark/kafka211241 /opt/software/
//再拷贝my.sh
./allsend.sh /etc/profile.d/my.sh /etc/profile.d/
9.见第5步骤。更改剩下机器的/opt/software/spark/kafka211241/config中的数据。及激活环境变量。
10.后台启动kafka。先将路径切换到/opt/software/spark/kafka211241/config
nohup kafka-server-start.sh server.properties >/dev/null 2>&1 &
//-daemon 后台启动,默认前台阻塞
kafka-server-start.sh -daemon server.properties
也可以前台启动kafka,但是会占用一个窗口。
kafka-server-start.sh server.properties
关闭kafka进程:
kafka-server-stop.sh stop
11.进入zookeeper的客户端,检测kafka是否在zookeeper集群上。
zkCli.sh
12.创建一个topic。
kafka-topics.sh --zookeeper master01:2181/kafka --create --topic first --replication-factor 2 --partitions 3
查看topic。
kafka-topics.sh --zookeeper master01:2181/kafka --list
查看topic的详细信息。
kafka-topics.sh --zookeeper master01:2181/kafka --describe
删除topic。默认删除是标记,不会真正删除主题。
kafka-topics.sh --delete --zookeeper master01:2181,master02:2181,slave01:2181,slave02:2181/kafka --topic first
13.在master01上做生产者测试。测试其吞吐量。往kafka中写东西。注意:每一台机器的zookeeper服务和kafka服务都要先开启一下。
//--broker-list去节点上找元数据
kafka-console-producer.sh --broker-list master01:9092,master02:9092 --topic first
在master02上做消费者测试。master02消费来自master01上的数据。
//--bootstrap-server去节点上找元数据。从最新位置开始消费(默认)
kafka-console-consumer.sh --bootstrap-server master01:9092,master02:9092 --topic first
//从最初开始消费
kafka-console-consumer.sh --bootstrap-server master01:9092,master02:9092 --topic first --from-beginning
14.查看消费者组。
kafka-consumer-groups.sh --bootstrap-server master01:9092 --list
查某个组的详情。
kafka-consumer-groups.sh --bootstrap-server master01:9092 --describe --group console-consumer-19928
15.在master01上做生产者压力测试。注意:每一台机器的zookeeper服务和kafka服务都要先开启一下。
//--record-size一条消息多大字节单位,--num-records一次性生成多少条
//throughput一次写多少条,-1表示不定量测吞吐。具体一些数字表示定量测延时。
//--producer-props 所有机器
kafka-producer-perf-test.sh --topic first --record-size 1000 --num-records 200000 --throughput -1 --producer-props bootstrap.servers=master01:9092,master02:9092,slave01:9092,slave02:9092
在master01上做消费者压力测试。
//--fetch-size每次提取消息大小,--messages总共提取消息数,threads开几个线程
kafka-consumer-perf-test.sh --topic first --fetch-size 10000 --messages 200000 --threads 1 --broker-list master01:9092,master02:9092,slave01:9092,slave02:9092