前言
安装环境:Linux
Scala-2.12.8
Zookeeper-3.4.12
Kafka-2.1.1--------官网:http://kafka.apache.org/downloads
假如你已经安装好了Linux、Scala、Zookeeper(集群,博主为1个主节点,3个从节点)。
未安装可参考:
Scala:https://blog.csdn.net/qq_38038143/article/details/88670650
Zookeeper:https://blog.csdn.net/qq_38038143/article/category/8380288
1. 安装Kafka(单个节点)
- 验证Zookeeper
- 启动,在每台Linux 上执行:
zkServer.sh start
- jps 查看:
- 验证,出现类似以下内容即成功
- 安装Kafka
解压:
tar -zxvf kafka_2.12-2.1.1.tgz
mv kafka_2.12-2.1.1 kafka-2.1.1
配置环境变量:
在 ~/.bashrc 文件末尾添加
# Kafka
export KAFKA_HOME=/home/hadoop/kafka-2.1.1
export PATH=$PATH:$KAFKA_HOME/bin
使生效:source ~/.bashrc
- 启动
hadoop@master:~/kafka-2.1.1$ kafka-server-start.sh -daemon ./config/server.properties
hadoop@master:~/kafka-2.1.1$ jps
5794 Kafka
3641 QuorumPeerMain
5818 Jps
- 测试
# 创建主题
hadoop@master:~/kafka-2.1.1$ kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
# 验证主题
hadoop@master:~/kafka-2.1.1$ kafka-topics.sh --zookeeper master:2181 --describe --topic test
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
hadoop@master:~/kafka-2.1.1$
# 向主题发布消息
hadoop@master:~/kafka-2.1.1$ kafka-console-producer.sh --broker-list master:9092 --topic test
>hello world!
>hello kafka
# (Ctrl + D结束)
# 从主题读取消息
hadoop@master:~/kafka-2.1.1$ kafka-console-consumer.sh --bootstrap-server master:9092 --topic test --from-beginning
hello world!
hello kafka
^CProcessed a total of 2 messages
2. 安装Kafka(集群)
- 将第1节中配置好的Kafka-2.1.1,传输到各个子节点。
如:
ssh -r kafka-2.1.1 slave1:/home/hadoop
- 修改broker-id
在配置文件 config/server.properties 中修改:
如master 节点为 0,slave1为1,slave2为2,slave3为3。
总之各节点的broker-id 不能相同。
- 设置环境变量
在各个节点的 ~/.bashrc 文件中添加:
# Kafka
export KAFKA_HOME=/home/hadoop/kafka-2.1.1
export PATH=$PATH:$KAFKA_HOME/bin
同时 :source ~/.bashrc
- 启动
在各个节点分别启动Kafka:
kafka-server-start.sh -daemon ./config/server.properties
查看进程:
5. 在master 节点创建的主题,能够在子节点查询到: