一 安装 jdk
1 安装 jdk ,这里选择 openjdk 1.8
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装后的jre和jdk在 /usr/lib/jvm/ 里,本例中具体的文件夹是java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64,注意这里的版本可能和你安装的不一样,以你的为准
2 配置 jdk
环境变量在 /etc/profile文件 或者 /etc/profile.d/文件夹中新建 java.sh 文件,这里使用新建文件的方式,在文件中加入以下内容
vi /etc/profile.d/java.sh
-
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64 #注意这里的版本号按你安装的来
-
JRE_HOME=$JAVA_HOME/jre
-
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
-
export JAVA_HOME JRE_HOME CLASSPATH PATH
3 让环境变量立即生效
source /etc/profile
4 检验版本
java -version
二 配置防火墙
1 配置防火墙
-
firewall-cmd --permanent --zone=public --add-port=2181/tcp # 客户端访问端口
-
firewall-cmd --permanent --zone=public --add-port=2888/tcp # zookeeper 之间访问的端口
-
firewall-cmd --permanent --zone=public --add-port=3888/tcp # zookeeper 和其它应用的通信端口
-
firewall-cmd --permanent --zone=public --add-port=9092/tcp # 客户端访问端口
-
firewall-cmd --reload
2 降低SELinux的安全级别,否则SELinux会限制集群数据传输(setenforce 0 命令只能设置运行时的安全级别,想要完全设置安全级别,需要在SELinux的配置文件中进行配置更改)
打开/etc/selinux/config配置文件,设置SELINUX=permissive
使用reboot命令重启服务器使SELinux安全级别更改生效
三 下载并启动 kafka
1 创建 kafka 文件夹
mkdir /root/kafka
2 进入创建的 kafka 文件夹,上传下载的kafka安装包:(自行下载)
cd /root/kafka/
3 解压 kafka 并进入文件夹
-
tar -xzf kafka_2.11-0.11.0.1.tgz
-
cd kafka_2.11-0.11.0.1
4 启动 kafka
kafka 需要 zookeeper 作为基本服务,kafka 下载的代码中有自带的单台 zookeeper 服务器,使用解压文件夹根目录下的配置启动 zookeeper ,在参数中使用 -daemon 让服务在后台运行,不占用命令界面。(网上有说在命令最后便加 & 号也可以起到 -daemon 参数的作用,但我使用未成功,网上命令 bin/kafka-server-start.sh config/server-1.properties &)
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
5 启动kafka
bin/kafka-server-start.sh -daemon config/server.properties
四 验证 kafka(需要在加压的文件夹根目录中执行以下命令,本例中是 cd /usr/local/kafka/kafka_2.11-0.11.0.1)
1 创建一个 topic ,就像一个数据库表一样,生产者和消费者都需要通过一个 topic 向消息队列发送消息或者消费消息
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
2 查看刚才的 topic 是否创建成功,如果成功会输出 test
bin/kafka-topics.sh --list --zookeeper 192.168.144.95:2181
3 模拟生产者向 test 发送消息
bin/kafka-console-producer.sh --broker-list
192.168.144.95
:9092 --topic test
运行上边的命令后就可以在 > 号提示下发送信息了,没发送一条后回车确认
4 再启动一个远程连接 ssh 模拟消费者客户端
bin/kafka-console-consumer.sh --bootstrap-server 192.168.144.95:9092 --topic test --from-beginning
执行以上命令后刚才发的消息都能收到,而且现在在刚才的生产者 ssh 客户端发送信息,消费者客户端都可以收到。
5 增加分区及分区查看
bin/kafka-topics.sh --zookeeper 192.168.144.95:2181 --describe --topic kafka_95
bin/kafka-topics.sh --zookeeper 192.168.144.95:2181 --alter --partitions 15 --topic kafka_95
6. 查看当前消息数
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.144.95:9092 --topic kafka_95--time -1
7. 自带性能测试
producer:
./bin/kafka-producer-perf-test.sh --topic test --throughput 50000 --num-records 150000 --record-size 1000 --producer.config config/producer.properties --producer-props bootstrap.servers=192.168.144.95:9092 acks=1
consumer:
./bin/kafka-consumer-perf-test.sh --topic test--messages 50000 --message-size 102400 --batch-size 5000 --fetch-size 1048576 --num-fetch-threads 17 --threads 10 --zookeeper 192.168.144.95:2181
【kafka学习之四】kafka集群性能测试 - cac2020 - 博客园
2.4.0版本:
./bin/kafka-producer-perf-test.sh --topic test-pati3-rep2 --throughput 500000 --num-records 1500000 --record-size 1000 --producer.config config/producer.properties --producer-props bootstrap.servers=192.168.15.25:9092,192.168.15.26:9092,192.168.15.27:9092 acks=1
./bin/kafka-consumer-perf-test.sh --topic test --messages 5000 --fetch-size 1048576 --num-fetch-threads 17 --threads 10 --broker-list 192.168.15.25:9092,192.168.15.26:9092,192.168.15.27:9092 --print-metrics
8. 查看当前consumer列表及消费进度
查看当前consumer列表
bin/kafka-consumer-groups --bootstrap-server 192.168.144.95:9092 --list --new-consumer
查看当前consumer消费进度
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.144.95:9092 --describe --group datariver-streaming_table_dict
五 设置开机自启动服务
1 编写 zookeeper 的 systemd 自启动服务文件
vi /etc/systemd/system/zookeeper.service
内容如下
一 安装 jdk 安装后的jre和jdk在 /usr/lib/jvm/ 里,本例中具体的文件夹是java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64,注意这里的版本可能和你安装的不一样,以你的为准
3 让环境变量立即生效 4 检验版本 二 配置防火墙
2 降低SELinux的安全级别,否则SELinux会限制集群数据传输(setenforce 0 命令只能设置运行时的安全级别,想要完全设置安全级别,需要在SELinux的配置文件中进行配置更改) 三 下载并启动 kafka 2 进入创建的 kafka 文件夹,上传下载的kafka安装包: cd /root/kafka/ 3 解压 kafka 并进入文件夹
4 启动 kafka 5 启动kafka 四 验证 kafka(需要在加压的文件夹根目录中执行以下命令,本例中是 cd /usr/local/kafka/kafka_2.11-0.11.0.1) 2 查看刚才的 topic 是否创建成功,如果成功会输出 test 3 模拟生产者向 test 发送消息
运行上边的命令后就可以在 > 号提示下发送信息了,没发送一条后回车确认 执行以上命令后刚才发的消息都能收到,而且现在在刚才的生产者 ssh 客户端发送信息,消费者客户端都可以收到。 5 增加分区及分区查看 bin/kafka-topics.sh --zookeeper 192.168.144.95:2181 --describe --topic kafka_95 bin/kafka-topics.sh --zookeeper 192.168.144.95:2181 --alter --partitions 15 --topic kafka_95 6. 查看当前消息数 7. 自带性能测试 producer: ./bin/kafka-producer-perf-test.sh --topic test --throughput 50000 --num-records 150000 --record-size 1000 --producer.config config/producer.properties --producer-props bootstrap.servers=192.168.144.95:9092 acks=1 consumer: ./bin/kafka-consumer-perf-test.sh --topic test--messages 50000 --message-size 102400 --batch-size 5000 --fetch-size 1048576 --num-fetch-threads 17 --threads 10 --zookeeper 192.168.144.95:2181 【kafka学习之四】kafka集群性能测试 - cac2020 - 博客园 2.4.0版本: ./bin/kafka-producer-perf-test.sh --topic test-pati3-rep2 --throughput 500000 --num-records 1500000 --record-size 1000 --producer.config config/producer.properties --producer-props bootstrap.servers=192.168.15.25:9092,192.168.15.26:9092,192.168.15.27:9092 acks=1 五 设置开机自启动服务 内容如下
2 设置 zookeeper 自启动
3 编写 kafka 的 systemd 自启动服务文件
4 设置 kafka 自启动
|
2 设置 zookeeper 自启动
-
systemctl enable zookeeper
-
systemctl start zookeeper
3 编写 kafka 的 systemd 自启动服务文件
[Unit] Description=kafka After=network.target remote-fs.target nss-lookup.target zookeeper.service Wants=zookeeper.service [Service] Type=forking ExecStart=/root/kafka/kafka_2.11-0.11.0.1/bin/kafka-server-start.sh -daemon /root/kafka/kafka_2.11-0.11.0.1/config/server.properties ExecStop=/root/kafka/kafka_2.11-0.11.0.1/bin/kafka-server-stop.sh Restart=always User=root Group=root [Install] WantedBy=multi-user.target |
4 设置 kafka 自启动
-
systemctl enable kafka
-
systemctl start kafka