Kafka安装部署以及基本操作

1.集群规划
假设这里是三台机器
test01 test02 test03
zk zk zk
Kafka Kafka Kafka
2.jar下载
Kafka下载地址:http://kafka.apache.org/downloads.html
3.下载完成之后开始解压安装包
[hadoop@test01 software]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/
4.修改解压之后的文件名称。(可以修改也可以不修改,修改了用着方便点)

[hadoop@test01 module]$ mv kafka_2.11-0.11.0.0/ kafka

5.在Kafka目录下的创建logs文件夹

mkdir logs

6.修改配置文件

cd config/
vi server.properties

#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/module/kafka/logs 
 # 注意:默认情况下kafka的topic的partition数据和log日志都存放在这个目录,日志文件中最重要的是server
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接Zookeeper集群地址
zookeeper.connect=test01:2181,test02:2181,test03:2181

7.配置环境变量(也可以不配置)

[hadoop@test01 module]$ sudo vi /etc/profile

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

[hadoop@bigdata02 module]$ source /etc/profile

8.分发安装包
//这里使用一个同步脚本,也可以用scp进行远程发送。

[hadoop@bigdata02 module]$ xsync kafka/

9.分别在test02和test03上修改配置文件Kafka/config/server/properties中的broker.id=1,broker.id=2
注意:broker.id不能重复.
10.启动集群
一次在test01,test02,test03上启动Kafka,(前提是你的zookeeper已经正常启动)

[hadoop@test01 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[hadoop@test02 kafka]$ bin/kafka-server-start.sh -daemon  config/server.properties
[hadoop@test03 kafka]$ bin/kafka-server-start.sh -daemon  config/server.properties

11.关闭集群
[hadoop@test01 kafka]$ bin/kafka-server-stop.sh stop
[hadoop@test02 kafka]$ bin/kafka-server-stop.sh stop
[hadoop@test03 kafka]$ bin/kafka-server-stop.sh stop
12.kafka群起脚本

for i in bigdata02 bigdata03 bigdata04
do
echo "========== $i ==========" 
ssh $i '/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties'
echo $?
done

13.Kafka命令操作
查看当前服务器中的所有topic

[hadoop@test01 kafka]$ bin/kafka-topics.sh --zookeeper test01:2181 --list

创建topic

 [hadoop@test01 kafka]$ bin/kafka-topics.sh --zookeeper test01:2181 --create --replication-factor 2 --partitions 3 --topic first
选项说明: --topic定义topic名
--replication-factor 定义副本数,这里设置的是当前实际的副本数,副本数不超过broker的数量,hdfs上设置的副本数是最大副本。
	--partition 定义分区数

删除topic

[hadoop@test01 kafka]$ bin/kafka-topics.sh --zookeeper test01:2181 --delete --topic first

需要server.properties中设置delete.topic.enable=true否则只是标记删除
发送消息:

[hadoop@test01 kafka]$ bin/kafka-console-producer.sh --broker-list test01:9092 --topic first
>hello world
>hadoop   hadoop 

消费消息

[hadoop@test01 kafka]$ bin/kafka-console-consumer.sh \
--zookeeper test01:2181 --topic first

[hadoop@test01 kafka]$ bin/kafka-console-consumer.sh \
--bootstrap-server test01:9092 --topic first

[hadoop@test01 kafka]$ bin/kafka-console-consumer.sh \
--bootstrap-server test01:9092 --from-beginning --topic first

–from-beginning:会把主题中以往所有的数据都读出来。
消费者 --zookeeper 和 --bootstarp-server的区别?
对于消费者,Kafka中有两个设置的地方:对于老的消费者,由–zookeeper参数配置;
对于新的消费者,由–bootstarp-server参数设置
如果使用了–zookeeper参数,那么consumer的信息将会放在zk之中。
查看的方式时使用./zookeeper-client
然后 ls /consumers/[group_id]/offsets/[topic]/[broker_id-part_id],
这个是查看某个group_id的某个topic的offset
如果使用了–bootstarp-server参数,那么consumer的信息将会放在Kafka之中
参考链接:
https://www.cnblogs.com/tonglin0325/p/8810313.html
查看某个Topic的详情

[hadoop@test01 kafka]$ bin/kafka-topics.sh --zookeeper test01:2181 --describe --topic first

修改分区参数:
[hadoop@test01 kafka]$ bin/kafka-topics.sh --zookeeper test01:2181 --alter --topic first --partitions 6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值