kafka_2.12-2.6.0安装配置

kafka安装记录:

官网:http://kafka.apache.org/downloads.html

1.下载

yum install -y wget
wget https://mirrors.bfsu.edu.cn/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz 

2.解压:

tar -zxvf kafka_2.12-2.6.0.tgz -C /opt/

3.改名

mv kafka_2.12-2.6.0 kafka

4.创建文件

cd kafka

kafka目录下创建:

mkdir logs 
mkdir data

5.修改配置文件:

cd config/

vi server.properties

唯一编号
kafka数据地址
添加主机

#broker 的全局唯一编号,不能重复
broker.id=0
#删除 topic 功能使能
delete.topic.enable=true
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO 的现成数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka 运行日志存放的路径
log.dirs=/opt/kafka/data
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=x:2181,x1:2181,x2:2181

分别在 另外两台主机上修改配置文件
/opt/kafka/config/server.properties 中的 broker.id=1、broker.id=2

注:broker.id 不得重复

6.配置环境变量

vi ~/.bash_profile

添加:

#KAFKA_HOM
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

配置文件生效:

source ~/.bash_profile

7.启动集群,

(必须先启动zookeeper)(后续写一个启动脚本)

cd /opt/zookeeper/bin/
./zkServer.sh start

zookeeper启动

7.1再依次在 master、server1、server2 节点上启动 kafka

cd /opt/kafka/bin/

./kafka-server-start.sh /opt/kafka/config/server.properties

(启动后是个阻塞进程,操作还得重新开一个窗口,但方便查看输出的日志)
kafka启动

./kafka-server-start.sh -daemon /opt/kafka/config/server.properties

(后台启动,推荐。)
后台启动

查看Kafka是否启动成功 jps
jps

8.创建集群脚本

echo $PATH

path

为了命令能找到我们创建的脚本;可创建到以上任一bin目录下; 以/usr/bin 为例

cd /usr/bin 
vi kk.sh
8.1 更改kafka 停止脚本

kafka 的bin目录下 kafka-server-stop.sh有些问题,需要先修改一下官方提供的stop脚本,集群中的每一台机器都要改(注意 kafka 里面的k是小写)

PIDS=$(ps ax | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $1}')

改为

PIDS=$(ps ax | grep -i 'kafka' | grep java | grep -v grep | awk '{print $1}')

集群启动脚本:

#!/bin/bash

case $i in
"start"){
	for i in x x1 x2
		do
			echo --------$i 启动kafka---------
			ssh $i " source /etc/profile;/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties"
		done
};;
"stop"){
	for i in x x1 x2
		do
			echo --------$i 停止kafka---------
			ssh $i " source /etc/profile;/opt/kafka/bin/kafka-server-stop.sh stop"
		done
};;
esac
8.2赋予权限:
chmod 777 kk.sh
8.3脚本使用:

停止:kk.sh stop

运行:kk.sh start
启动

解决Windows创建的脚本文件,上传到Linux使用不了的问题:

属性不兼容

sed -i 's/\r$//' kk.sh

9.创建主题:

创建主题

[root@x kafka]#

bin/kafka-topics.sh --create --zookeeper x:2181 --topic first --partitions 2 --replication-factor 2 --create

cj

解析:
bin/kafka-topics.sh增加主题 create创建 zookeeper x:2181
存储数据 topic first主题名字 partitions分区数 replication-factor 2个副本

9.1查看主题:
[root@x kafka]# bin/kafka-topics.sh --list --zookeeper x:2181

x

帮助我们分类数据

9.2删除主题:
bin/kafka-topics.sh --delete --zookeeper x:2181 --topic first 

需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除。

9.3修改分区数
bin/kafka-topics.sh --zookeeper x:2181 --alter --topic first --partitions 3

一般 分区数,不超过主机数量

9.4详细信息:
bin/kafka-topics.sh --describe --topic first --zookeeper x:2181

详细信息

10.生产:

bin/kafka-console-producer.sh --topic first --broker-list x:9092

sc

10.1去另一台机器开启消费者:

[root@x1 kafka]# bin/kafka-console-consumer.sh --bootstrap-server x:9092,x1:9092,x2:9092 --topic first

x生产者发送消息, x1消费者会接收消息,
xx1

x2消费者 从头接收消息(--from-beginning) 超过7天 就消费不了了

bin/kafka-console-consumer.sh --bootstrap-server x:9092,x1:9092,x2:9092 --topic first --from-beginning

在这里插入图片描述

平常遇到以下这种警告,是有节点掉线了 检查三个节点状态,掉了,节点再启动下可以解决

diaoxian

11 一些错误聚集记录

zookeeper,kafka错误
1.ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)

原因:找不到properties文件,或者配置文件路径指定错误
办法:指定配置文件路径

2.Configured broker.id 130 doesn’t match stored broker.id 0 in meta.properties

原因:单机使用过
办法:删除数据文件重启

3.zookeeper is not a recognized option

原因:旧版使用--zookeeper 新版已经去掉了这个选项

办法:0.9以后版本启动改为 --bootstrap-server

4.Replication factor: 2 larger than available brokers: 1

原因:副本数超过了broker的数即服务器数
办法:小于broker数即可

5.报错:

WARN Error while fetching metadata with correlation id 479 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

WARN Error while fetching metadata with correlation id 480 :{test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

办法:修改 server.properties 添加
host.name=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值