搭建kafka集群

  1. 准备三台服务器, 安装jdk1.8 ,其中每一台虚拟机的hosts文件中都需要配置如下的内容
192.168.72.141 node01
192.168.72.142 node02
192.168.72.143 node03
  1. 安装目录
安装包存放的目录:/export/software
安装程序存放的目录:/export/servers
数据目录:/export/data
日志目录:/export/logs

创建各级目录命令:

mkdir -p /export/servers/
mkdir -p /export/software/
mkdir -p /export/data/
mkdir -p /export/logs/ 

3)注意先把zookeeper集群已经安装好并且已经启动好

下面开始安装kafka:
3.2 下载安装包
在这里插入图片描述由于kafka是scala语言编写的,基于scala的多个版本,kafka发布了多个版本。

其中2.11是推荐版本.
在这里插入图片描述
3.3 上传安装包并解压
使用 rz 命令将安装包上传至 /export/software

  1. 切换目录上传安装包
    cd /export/software
    rz # 选择对应安装包上传即可

  2. 解压安装包到指定目录下
    tar -zxvf kafka_2.11-1.0.0.tgz -C /export/servers/
    cd /export/servers/

  3. 重命名(由于名称太长)
    mv kafka_2.11-1.0.0 kafka

3.4 修改kafka的核心配置文件

cd /export/servers/kafka/config/
vi   server.properties

主要修改一下四个地方:
	1) broker.id            需要保证每一台kafka都有一个独立的broker
	2) listeners = PLAINTEXT://当前虚拟机ip地址:9092
	3) log.dirs             数据存放的目录  
	4) zookeeper.connect    zookeeper的连接地址信息 
    

#broker.id 标识了kafka集群中一个唯一broker。   
broker.id=0   
num.network.threads=3   
num.io.threads=8   
socket.send.buffer.bytes=102400   
socket.receive.buffer.bytes=102400   
socket.request.max.bytes=104857600  

#listeners : 表示的监听的地址. 需要更改为当前虚拟机的ip地址, 保证其他主机都能连接
listeners = PLAINTEXT://当前虚拟机的ip地址:9092

# 存放生产者生产的数据 数据一般以topic的方式存放    
log.dirs=/export/data/kafka           
num.partitions=1   
num.recovery.threads.per.data.dir=1   
offsets.topic.replication.factor=1   
transaction.state.log.replication.factor=1   
transaction.state.log.min.isr=1   
log.retention.hours=168   
log.segment.bytes=1073741824   
log.retention.check.interval.ms=300000     

# zk的信息   
zookeeper.connect=node01:2181,node02:2181,node03:2181   
zookeeper.connection.timeout.ms=6000   
group.initial.rebalance.delay.ms=0  

3.5 将配置好的kafka分发到其他二台主机

cd /export/servers
scp -r kafka/ node02:$PWD  
scp -r kafka/ node03:$PWD

拷贝后, 需要修改每一台的broker.id

ip为61的服务器: broker.id=0
ip为62的服务器: broker.id=1
ip为63的服务器: broker.id=2

修改每一台的listeners的ip地址

ip为141的服务器: listeners=PLAINTEXT://192.168.72.61:9092
ip为142的服务器: listeners=PLAINTEXT://192.168.72.62:9092
ip为143的服务器: listeners=PLAINTEXT://192.168.72.63:9092

修改完ip后立马 创建存放数据的目录:
在三台的服务器执行创建数据文件的命令

mkdir -p /export/data/kafka

以上步骤做完后我们就可以启动kafka的集群了
3.6 启动集群

//先进入bin的目录
	cd /export/servers/kafka/bin   
//在bin目录下启动
./kafka-server-start.sh /export/servers/kafka/config/server.properties 1>/dev/null 2>&1 &

可以在三台都执行这个这个步骤,也可以先在一台虚拟机上执行
然后查看启动的状态:

//输入jps命令查看
jps

以下是kafka的基本使用和操作:

  1. 创建一个topic:
./kafka-topics.sh --create --zookeeper node01:2181 --replication-factor 1 --partitions 1 --topic order
  1. 使用Kafka自带一个命令行客户端启动一个生产者,生产数据
./kafka-console-producer.sh --broker-list node01:9092 --topic order
  1. 使用Kafka自带一个命令行客户端启动一个消费者,消费数据
//该消费语句,只能获取最新的数据,要想历史数据,需要添加选项--from-beginning
./kafka-console-consumer.sh --bootstrap-server node01:9092  --topic order
如:bin/kafka-console-consumer.sh --bootstrap-server node01:9092 --from-beginning --topic order
  1. 查看有哪些topic
./kafka-topics.sh --list --zookeeper node01:2181
  1. 查看某一个具体的Topic的详细信息
./kafka-topics.sh --describe --topic order --zookeeper node01:2181
  1. 删除topic
//	这个只会标识一下, 这个topic已经被删除了
./kafka-topics.sh --delete --topic order --zookeeper node01:2181

注意:彻底删除一个topic,需要在server.properties中配置delete.topic.enable=true,否则只是标记删除
配置完成之后,需要重启kafka服务。
彻底删除, 描述将元数据信息彻底删除, 不会删除原始数据

原始数据, 必须手动删除即可

如果在使用中, 需要删除一个topic: 直接删除zookeeper中对应topic的节点即可,
如果要删除原始数据, 需要到对应目录下手动删除

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值