本节讲解kafka安装、配置与简单操作。
源码下载
一、集群规划
node01 | node02 | node03 |
kafka | kafka | kafka |
二、下载与设置
- 下载
https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz
# 1 上传到u02目录或者使用wget下载
[jack@node01 u02]$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz
# 2 解压缩
[jack@node01 u02]$ tar -zxvf kafka_2.13-2.7.0.tgz -C /u01
[jack@node01 u02]$ cd /u01
[jack@node01 u01]$ mv kafka_2.13-2.7.0 kafka-2.7.0
# 3 创建日志目录
[jack@node01 u01]$ cd kafka-2.6.0
[jack@node01 kafka-2.6.0]$ mkdir -p logs
# 4 修改配置
[jack@node01 kafka-2.7.0]$ cd config
[jack@node01 config]$ vi server.properties
#物理删除topic
delete.topic.enable=true
log.dirs=/u01/kafka-2.7.0/logs
zookeeper.connect=node01:2181,node02:2181,node03:2181
# 5 配置环境变量(所有服务器都要设置)
[jack@node01 config]$ sudo vi /etc/profile
export KAFKA_HOME=/u01/kafka-2.7.0
export PATH=$PATH:$KAFKA_HOME/bin
[jack@node01 config]$ source /etc/profile
# 6 分发到其他服务器
[jack@node01 bin]$ cd /u01/bin
[jack@node01 bin]$ xsync /u01/kafka-2.7.0
# 7 修改node02服务器的设置
[jack@node01 bin]$ ssh node02
[jack@node02 bin]$ cd /u01/kafka-2.7.0/config
[jack@node02 config]$ vi server.properties
broker.id=2
[jack@node02 config]$ exit
# 8 修改node03服务器的设置
[jack@node01 bin]$ ssh node03
[jack@node03 bin]$ cd /u01/kafka-2.7.0/config
[jack@node03 config]$ vi server.properties
broker.id=3
[jack@node03 config]$ exit
- 统一启动集群
名称:kafka.sh
存放目录:/u01/bin
#!/bin/bash
pgmName=`basename $0`
pgmName=${pgmName##*/} # remove the path
pgmExt=${pgmName##*.} # get the extension
pgmName=${pgmName%.*} # get the program name
USAGE="Usage: $pgmName.$pgmExt <start/stop>\n"
if [ $# -lt 1 ]
then
echo $USAGE
exit 1
fi
case $1 in
"start"){
for i in node01 node02 node03
do
echo "------------- start $i Kafka -------------"
ssh $i "$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties "
done
};;
"stop"){
for i in node01 node02 node03
do
echo "------------- stop $i Kafka -------------"
ssh $i "$KAFKA_HOME/bin/kafka-server-stop.sh stop"
done
};;
esac
三、操作
- 前提:一定要启用zookeeper,具体见上节介绍。
- 操作
# 创建日志主题
[jack@node01 bin]$ kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --create --replication-factor 1 --partitions 1 --topic topicStart
# 创建日志事件主题
[jack@node01 bin]$ kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --create --replication-factor 1 --partitions 1 --topic topicEvent
# 测试主题名带下划线
[jack@node01 bin]$ kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --create --replication-factor 1 --partitions 1 --topic topic_test
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic topic_test.
# 查看topic列表
[jack@node01 bin]$ kafka-topics.sh --list --zookeeper node01:2181
# 查看topic详情
[jack@node01 bin]$ kafka-topics.sh --bootstrap-server node01:2101 --describe --topic topicStart
# 删除topic
[jack@node01 bin]$ kafka-console-consumer.sh --bootstrap-server node01:9092 --from-beginning --topic topic_test
# 在kafka生产消息服务器node01/node02,随便输入字符串
[jack@node01 bin]$ kafka-console-producer.sh --broker-list node01:9092 --topic topic_test
# 在kafka消费服务器node03,能接收上述输入的字符串
[jack@node03 bin]$ kafka-console-consumer.sh --bootstrap-server node01:9092 --from-beginning --topic topic_test
电商数仓项目(一) 系统规划和配置
电商数仓项目(二) Maven 安装和hadoop-lzo编译
电商数仓项目(三) hadoop3.2.2 安装与配置
电商数仓项目(四) 模拟电商日志数据开发
电商数仓项目(五) azkaban安装、配置和使用
电商数仓项目(六) zookeeper安装和配置