kafka在linux上集群部署说明

前言:

以本人的三台虚机:10.97.22.3、10.97.22.4、10.97.22.5为例,分别部署zookeeper和kafka集群环境

一、部署Zookeeper:

1、进入到 /usr/local/kafka/目录中:

cd /usr/local/kafka/

2、下载 zookeeper-3.4.10.tar.gz:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

3、解压缩 zookeeper-3.4.10.tar.gz:
tar -zxvf zookeeper-3.4.10.tar.gz

4、进入到 /usr/local/kafka/zookeeper-3.4.10/conf 目录中:
cd zookeeper-3.4.10/conf/

5、复制 zoo_sample.cfg 文件的并命名为为 zoo.cfg:
cp zoo_sample.cfg zoo.cfg

6、用 vim 打开 zoo.cfg 文件并修改其内容为如下:
vi zoo.cfg 
修改之后 :wq 保存退出

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/kafka/zookeeper-3.4.10/data

dataLogDir=/data/zookeeper

clientPort=2181

server.1=10.97.22.3:2888:3888
server.2=10.97.22.4:2888:3888
server.3=10.97.22.5:2888:3888

7、保存并关闭 zoo.cfg 文件:

8、用 vim 打开 /etc/ 目录下的配置文件 profile:

vi /etc/profile
并在其尾部追加如下内容:

# idea - zookeeper-3.4.10 config start - 2016-09-08

export ZOOKEEPER_HOME=/usr/local/kafka/zookeeper-3.4.10/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH

# idea - zookeeper-3.4.10 config start - 2016-09-08

9、使 /etc/ 目录下的 profile 文件即可生效:
source /etc/profile

10、启动 zookeeper 服务:
zkServer.sh start
如打印如下信息则表明启动成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/kafka/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

11、查询 zookeeper 状态:
zkServer.sh status

12、关闭 zookeeper 服务:
zkServer.sh stop
如打印如下信息则表明成功关闭:
ZooKeeper JMX enabled by default
Using config: /usr/local/kafka/zookeeper-3.4.10/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

13、重启 zookeeper 服务:
zkServer.sh restart
如打印如下信息则表明重启成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/kafka/zookeeper-3.4.10/bin/../conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/kafka/zookeeper-3.4.10/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
ZooKeeper JMX enabled by default
Using config: /usr/local/hikvision/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

14、分布式 zookeeper 环境:
(1)、在每台机子的hosts中都加上如下的映射:

vi /etc/hosts
10.97.22.3 server-1
10.97.22.4 server-2
10.97.22.5 server-3
(2)、切记在zookeeper的data目录下,创建一个myid的文本文件,里面为每台机子配上不同的id,如:
10.97.22.3服务器上zookeeper的data目录下的myid文件中只要写上一个字符“1”就好了
10.97.22.4服务器上zookeeper的data目录下的myid文件中只要写上一个字符“2”就好了
10.97.22.5服务器上zookeeper的data目录下的myid文件中只要写上一个字符“3”就好了
(4)、最后分别重启zookeeper服务,会发现三台机子中,有两台的mode:follower,一台的mode:leader,这样zookeeper就部署成功了!

二、部署kafka:

1、下载 kafka_2.11-1.1.0.tgz:

wget http://mirrors.hust.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz

2、解压缩 kafka_2.11-1.1.0.tgz:
tar -zxvf kafka_2.11-1.1.0.tgz

3、配置日志:进入到/usr/local/kafka/kafka_2.11-1.1.0/config目录创建日志目录;
cd /data
mkdir kafka


4、修改kafka配置文件:

进入到/usr/local/kafka/kafka_2.11-1.1.0/config目录,修改server.properties。
cd /usr/local/kafka/kafka_2.11-1.1.0/config
vi server.properties 替换以下配置,具体host.name、port和broker.id,根据实际情况修改

broker.id=1
port=9092
host.name=10.97.22.3
delete.topic.enable=true

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/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

zookeeper.connect=10.97.22.3:2181,10.97.22.4:2181,10.97.22.5:2181

zookeeper.connection.timeout.ms=6000

group.initial.rebalance.delay.ms=0

:wq! #保存退出

5、修改日志配置文件:
进入到/data/kafka目录,修改meta.properties。
cd /data/kafka
vi meta.properties #修改为如下配置,注意broker.id应与server.properties中的broker.id一致

broker.id=1
version=0

6、Kafka操作:

(1)、启动kafka命令:
cd /usr/local/kakfa/kafka_2.11-1.1.0/bin
nohup ./kafka-server-start.sh /usr/local/kafka/kafka_2.11-1.1.0/config/server.properties &

(2)、停止kafka命令:
./kafka-server-stop.sh
(3)、创建Topic:(创建一个名为test的topic,只有一个副本,一个分区。)
./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
(4)、列出所有Topic:
./kafka-topics.sh -list -zookeeper 127.0.0.1:2181 
(5)、启动Producer并发送消息:
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
(输入相应的消息,eg:hello kafka;按Ctrl+C结束)
(6)、启动Consumer并接收消息:
./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

7、Kafka配置集群:
(1)、在每台机子的配置文件中的broker.id都设置成唯一,如:
10.97.22.3服务器上kafka的server.properties文件中broker.id=1
10.97.22.4服务器上kafka的server.properties文件中broker.id=2
10.97.22.5服务器上kafka的server.properties文件中broker.id=3 
(2)、因为前面在zookeeper的部署说明中,已经把每台集群服务host文件设置了,所以只需在每台服务的server.properties文件中配上:zookeeper.connect=10.97.22.3:2181,10.97.22.4:2181,10.97.22.5:2181
(3)、重启kafka,集群部署完毕!

三、部署kafka-manager:

1、下载好kafka-manager编译好的压缩包,我这里下的是“kafka-manager-1.3.3.7.zip”,并在10.86.22.3上创建目录/usr/local/services/kafka-manager
2、上传kafka-manager-1.3.3.7.zip到跳板机
3、在跳板机上执行:scp kafka-manager-1.3.3.7.zip root@10.86.22.3:/usr/local/services/kafka-manager
4、解压:unzip kafka-manager-1.3.3.7.zip
5、定位到conf下的application.conf文件,修改配置信息如下:
kafka-manager.zkhosts=10.97.22.3:2181,10.97.22.4:2181,10.97.22.5:2181
6、在解压的目录中运行:
nohup bin/kafka-manager &
7、在浏览器中输入10.86.22.3:9000,弹出kafka-manager的管理界面,选择Add Cluster
8、Cluster Name随便输一个,如“test-kafka-cluster”,Cluster Zookeeper Hosts输入:
10.97.22.3:2181,10.97.22.4:2181,10.97.22.5:2181
选择保存(其他没啥好填的,有需要的以后再更改)弹出Add Cluster Done的界面
9、再次回到10.97.22.3:9000,可以看到界面上已经有个名为test-kafka-cluster的集群了,点进去可以看到zookeepers的数目和topics的数目,继续点进去可以查看每个topic的状态!

四、部署kafka-offset-monitor:

1、下载包:wget https://github.com/quantifind/KafkaOffsetMonitor/releases/download/v0.2.1/KafkaOffsetMonitor-assembly- 0.2.1.jar
2、安装解压工具:yum install -y unzip zip
3、安装jar工具:yum install java-devel
4、解压到test文件夹:unzip KafkaOffsetMonitor-assembly-0.2.1.jar -d test
5、下载下来的包里,含有直接连google的angularjs的配置,所以要改成国内的。进入offsetapp目录,打开index.html,找到google
的angularjs,分别替换为:
https://code.angularjs.org/1.2.9/angular.js
https://code.angularjs.org/1.2.9/angular-route.js
https://code.angularjs.org/1.2.9/angular-resource.js
6、重新打包:
jar cvfm KafkaOffsetMonitor-saas.jar ./META-INF/MANIFEST.MF ./
7、创建自启动脚本:vi kafka-monitor-start.sh
java -cp KafkaOffsetMonitor-saas.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--offsetStorage kafka \
--zk 10.97.22.3:2181,10.97.22.4:2181,10.97.22.5:2181 \
--port 9900 \
--refresh 10.seconds \
--retain 2.days
8、给自启动脚本授权:chmod +x kafka-monitor-start.sh
9、后台启动:nohup ./kafka-monitor-start.sh >/dev/null 2>&1 &
10、查看进程:ps -ef|grep KafkaOffsetMonitor
11、浏览器输入http://ip:9900 即可查看

五:开启kafka JMX

开启kafka的JMX后,可以直接在kafka manager里面直接观察集群的吞吐量、单topic的吞吐量等信息。

开启方法:

1.启动kafka前,执行命令:export JMX_PORT=9999 ,端口号随意,但是别和其他进程冲突。

2.进入kafka manager,编辑集群配置。

 3.结果展示

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大猩猩爱分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值