目录
Apache Hadoop生态-目录汇总-持续更新
系统环境:centos7
Java环境:Java8
单机版的kafka也需要依赖zookeeper
参考:Apache Hadoop生态部署-zookeeper单机安装
需要先启动zookeeper
[root@node100 local]# jps
11903 QuorumPeerMa
一:安装包准备
方式1)官网下载:Apache Kafka
注意:kafka_2.12-2.2.0 2.12是scala版本,2.2.0是kafka版本
方式2)安装包--百度网盘
链接:https://pan.baidu.com/s/1QiwBOTcgK8IwZ5eprKBhLg?pwd=yyds
提取码:yyds
二:安装与常用配置
2.1:下载解压安装包
1:下载安装包
cd /tmp
sudo wget https://archive.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz
或者百度网盘上传到这里
2:解压到/usr/local下
sudo tar -zxvf /tmp/kafka_2.12-2.2.0.tgz -C /usr/local/
2.2:配置环境变量
sudo vim /etc/profile.d/kafka_env.sh
#KAFKA_HOME
export KAFKA_HOME=/usr/local/kafka_2.12-2.2.0
export PATH=$PATH:$KAFKA_HOME/bin
执行source /etc/profile使环境变量生效
2.3:配置修改server.properties
log.dirs-实际存储的是kafka的暂存数据, kafka会自己创建一个logs的目录存放日志的
# 创建文件夹 -存放topic信息
sudo mkdir $KAFKA_HOME/data
sudo vim $KAFKA_HOME/config/server.properties
#broker 的全局唯一编号,不能重复
broker.id=0
# 允许删除topic, 如果不设置无法彻底删除,只是标记删除
# 如果没有设置则调用kafka 的delete命令无法真正将topic删除,而是显示(marked for deletion)
delete.topic.enable=true
#配置Zookeeper地址,数据存放zookeeper位置
zookeeper.connect=node100:2181/kafka
#kafka 运行日志存放的路径 --实际存储的是kafka的数据
log.dirs=/usr/local/kafka_2.12-2.2.0/data
#在log.retention.hours=168 后新增下面三项
message.max.byte=5242880
default.replication.factor=1
replica.fetch.max.bytes=5242880
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO 的现成数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
三:维护kafka
3.1 编写维护脚本
sudo vim $KAFKA_HOME/bin/mykafka.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
for i in node100
do
echo ---------- kafka $i 启动 ------------
ssh $i "/usr/local/kafka_2.12-2.2.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.2.0/config/server.properties"
done
;;
"stop")
for i in node100
do
echo ---------- kafka $i 关闭 ------------
ssh $i "/usr/local/kafka_2.12-2.2.0/bin/kafka-server-stop.sh /usr/local/kafka_2.12-2.2.0/config/server.properties"
done
;;
*)
echo "Input Args Error..."
;;
esac
添加可执行权限
chmod +x $KAFKA_HOME/bin/mykafka.sh
3.2 启动kafka
mykafka.sh start
3.3 关闭kafka
mykafka.sh stop
会有些延迟
3.4 错误日志
$KAFKA_HOME/logs/server.log
四:测试
查看topic
kafka-topics.sh --zookeeper node100:2181/kafka --list
创建topic
kafka-topics.sh --zookeeper node100:2181/kafka --create --replication-factor 1 --partitions 1 --topic test_topic_name
发送数据
kafka-console-producer.sh --broker-list node100:9092 --topic test_topic_name
从头消费数据
kafka-console-consumer.sh --bootstrap-server node100:9092 --topic test_topic_name --from-beginning