Kafka集群部署

2Kafka集群部署

 

2.1 环境准备

2.1.1 集群规划

 

hadoop01  hadoop02  hadoop03  ------多台分布式集群(这里举例三台)

 

  zk     zk       zk   ------每台机器上配置好ZooKeeper集群

 

 kafka     kafka     kafka    ------每台机器上配置好Kafka集群

 

2.1.2 jar下载

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

 

 

 2.2 Kafka集群部署

 

1解压安装包

 

$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/      (以自己下载的安装包以及安装路径为准)

 

2修改解压后的文件名称

 

$ mv kafka_2.11-0.11.0.0/ kafka

 

3)在/opt/module/kafka目录下创建logs文件夹  (对应下文中配置文件中日志存放的路径)

 

[ kafka]$ mkdir logs

 

4修改配置文件

 

[ kafka]$ cd config/

 

[ 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

 

#topic在当前broker上的分区个数

 

num.partitions=1

 

#用来恢复和清理data下数据的线程数量

 

num.recovery.threads.per.data.dir=1

 

#segment文件保留的最长时间,超时将被删除

 

log.retention.hours=168

 

#配置连接Zookeeper集群地址

 

zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181

 

5)配置环境变量            (根据自己的目录改环境配置)

 

$ sudo vi /etc/profile

 

#KAFKA_HOME

 

export KAFKA_HOME=/opt/module/kafka

 

export PATH=$PATH:$KAFKA_HOME/bin

 

$ source /etc/profile

 

6)分发安装包        (每台机器上做相同配置,我这里是自己配的xsync脚本)

 

[ module]$ xsync kafka/

 

注意:分发之后记得配置其他机器的环境变量

 

7)分别在hadoop02hadoop03上修改配置文件/opt/module/kafka/config/server.propertiesbroker.id=1broker.id=2

 

broker.id不得重复

 

8启动集群

 

依次在hadoop01hadoop02hadoop03节点上启动kafka

 

[ kafka]$ bin/kafka-server-start.sh config/server.properties &

 

[ kafka]$ bin/kafka-server-start.sh config/server.properties &

 

[ kafka]$ bin/kafka-server-start.sh config/server.properties &

 

9)关闭集群

 

[kafka]$ bin/kafka-server-stop.sh stop

 

[kafka]$ bin/kafka-server-stop.sh stop

 

[ kafka]$ bin/kafka-server-stop.sh stop

 

 

2.3 Kafka命令行操作

1)查看当前服务器中的所有topic

[ kafka]$ bin/kafka-topics.sh --zookeeper hadoop01:2181 --list

2)创建topic

[kafka]$ bin/kafka-topics.sh --zookeeper hadoop01:2181 \

--create --replication-factor 3 --partitions 1 --topic first

选项说明:

--topic 定义topic

--replication-factor  定义副本数

--partitions  定义分区数

3)删除topic

[kafka]$ bin/kafka-topics.sh --zookeeper hadoop02:2181 \

--delete --topic first

需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。(老版本)

4)发送消息

[ kafka]$ bin/kafka-console-producer.sh \

--broker-list hadoop01:9092 --topic first

>hello world

>atguigu  atguigu

5)消费消息

[kafka]$ bin/kafka-console-consumer.sh \

--zookeeper hadoop01:2181 --from-beginning --topic first

--from-beginning会把first主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。

6)查看某个Topic的详情

[ kafka]$ bin/kafka-topics.sh --zookeeper hadoop01:2181 \

--describe --topic first (老版本)

[kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop01:9092  --from-beginning --topic first (新版本)

 

posted @ 2019-07-28 02:05  DiYong  阅读(246)  评论(0编辑  收藏  举报