在本文中,我们将执行如何在 CentOS 上安装 Apache Kafka
简介
Kafka 是最流行的开源软件,它提供了一个用于存储、读取和分析流数据的框架。要了解有关 Kafka 的更多信息,请访问kafka官方文档。
依赖
- JDK 1.8 或更高的版本
安装jdk 8
在centos上, 可以选在下载java后安装, 或yum安装,我们选择使用yum安装
- 列出可使用的java包
java 8 和java 1.8 是同一个版本的不同名称
# yum search java | grep jdk | grep 1.8
除去源码, 我们只对比 java-1.8.0-openjdk-devel.x86_64 和 java-1.8.0-openjdk.x86_64
open JDK版本名称 | open JDK版本号 | 备注 | 说明 |
---|---|---|---|
java-1.8.0-openjdk.x86_64 | java8 | OpenJDK 8 Runtime Environment | open-jdk-8生产环境版本, 不包含开发工具工具 |
java-1.8.0-openjdk-devel.x86_64 | java8 | OpenJDK 8 Development Environment | open-jdk-8 开发环境版本,带有一些工具插件,jps, jmap, javac编译工具,jps -l 进程查看工具 |
推荐安装: java-1.8.0-openjdk-devel.x86_64
yum -y install java-1.8.0-openjdk-devel.x86_64
java -version
下载和安装kafka
- 选择合适版本的kafka, 这里我们选择 0.10.2, 下载并解压
wget https://archive.apache.org/dist/kafka/0.10.2.1/kafka_2.11-0.10.2.1.tgz
tar -xzf kafka_2.11-0.10.2.1.tgz
- 创建 zookeeper 和 kafka的 systemd unit 文件
⚠️ 调整 zookeeper.service 和 kafka.service 中 execstart
和 exectop
的文件路径 **
vim /etc/systemd/system/zookeeper.servic
[Unit]
Description=Apache Zookeeper service
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/data/kafka/kafka_2.11-0.10.2.1/bin/zookeeper-server-start.sh /data/kafka/kafka_2.11-0.10.2.1/config/zookeeper.properties
ExecStop=/data/kafka/kafka_2.11-0.10.2.1/bin/zookeeper-server-stop.sh
Restart=on-abnormal
WorkingDirectory=/data/kafka/kafka_2.11-0.10.2.1
Environment="_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true" ## 开启IPv4
[Install]
WantedBy=multi-user.target
vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka Service
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
[Service]
Type=simple
ExecStart=/data/kafka/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh /data/kafka/kafka_2.11-0.10.2.1/config/server.properties
ExecStop=/data/kafka/kafka_2.11-0.10.2.1/bin/kafka-server-stop.sh
Environment="KAFKA_HEAP_OPTS=-Xmx2G" ## 内存最大限制为 2G
Environment="KAFKA_OPTS=-Djava.net.preferIPv4Stack=True" ## 启动IPv4
[Install]
WantedBy=multi-user.target
- 配置 kafka 远程主机IP
cd /data/kafka/kafka_2.11-0.10.2.1/config && vim server.properties
## 取消如下两行的注释
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<HOST IP>:9092
- 启动zookeeper 和 kafka
systemctl daemon-reload
systemctl enable zookeeper kafka
systemctl start zookeeper kafka
- 发送和接收消息
## 发送消息
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DevOps
## 消费消息
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic DevOps --from-beginning
网友评论