kafka 启动_搭建kafka集群无从下手?来看这篇就知道了

导读

kafka集群安装,从本质上来讲,由一套多节点zookeeper集群和一套多节点Kafka集群组成组成,

如图:

e0823ef3d1cde44dc599b00c0598a7eb.png

kafka集群共依赖三部分内容:jdk,zookeeper,kafka。zookeeper集群是难点,需要特别注意。

集群环境介绍

主机信息

fac6e6b58fa3b99303f8e79dcefc2f1e.png

软件版本信息

2134297799d86fbd8ba7b254ece21579.png

开始集群部署

基础信息配置

修改host信息

配置host内容如下

192.168.6.84 kafka-1

192.168.6.85 kafka-2

192.168.6.86 kafka-3

关闭防火墙,禁止开机启动

关闭防火墙:

systemctl stop firewalld.service

禁止开机自启:

systemctl disable firewalld.service

安装jdk

创建统一的目录层级:

三个目录统一在/opt/apps路径下:

aad1e5abed3b1b8c8ea926aaf42750d7.png

jdk安装非常简单,这里不做介绍,如果不熟悉的可以网上查看相关资料。

jdk安装成功的标识为,执行java -verion 可以显示相关信息:

f8d5d665efa2bf4b2ed70eb36e3c2f84.png

安装zookeeper

安装形式有多种,这里使用离线包的形式。

将安装包上传到/opt/apps/zk路径下,并执行解压命令:

tar -xvf zookeeper-3.4.14.tar.gz

aa7cbbf0bc0a10301e1dc73faa14422a.png

刚解压完的zk中conf 文件夹内容如下:

9c66e86caaa0edf7e8a6be29033b19fd.png

第一步,需要将zoo_sample.cfg 复制一份重命名为zoo.cfg

执行命令:cp zoo_sample.cfg zoo.cfg

e9bcdb5dcc1f1d3b5dbe59886170fcd5.png

修改zoo.cfg内容。修改完zoo.cfg内容为:

e5994416e297dfc67bc99db540675b3f.png

将zoo.cfg 拷贝到其他主机:

scp zoo.cfg root@192.168.6.85:/opt/apps/zk/zookeeper-3.4.14/conf/

scp zoo.cfg root@192.168.6.86:/opt/apps/zk/zookeeper-3.4.14/conf/

在集群中所有节点的zoo.cfg内容是相同的。

zoo.cfg属性介绍:

tickTime:属性作为是对应session保存时间为这个时间的2倍,单位毫秒

initLimit :参数为:Follower节点启动的时候,会到leader节点同步数据,领导者端只允许在这个设置的时间内同步完数据,否则不任务加入zk队列中.

syncLimit:为领导者定期去检查时间其下节点是否状态还正常.

另外:还需要配置dataLogDir 参数,在生产环境下一定要配置.是记录事物日志的.这个会单独挂载到一个磁盘上.

dataDir:为对应主机的数据文件夹.

因为有三台zk,所以有三个server

server.1 server.2 server.3 其中数据 1 2 3 就是对应节点的id号,因为这个id值作为标识,分别在对应文件夹中记录对应id的内容.

这里需要特别注意:

在集群环境下,需要在对应的文件夹下建立一个myid 文件(touch myid)

里面内容分别为server.Id的值,

比如,zk文件夹下,myid 内容为 1 依次类推,分别为 2 3

上述:server 命名中 ip:port1:port2

其中第一个端口号为zk 中各服务通信的端口号,是leader与Follower之间通信的端口号, 第二个端口号为zk与zk之间通信的端口号.

比如第1个端口:主从之间的数据同步

比如第二个端口,在zk与zk之间需要投票,其中第二个端口是这个作用,这个是zk与zk间的通信.

启动前先创建日志存储路径(三台主机同步操作):

mkdir –p /opt/data/zk/logs

配置完,启动对应zk。

执行后台启动命令:

nohup sh zkServer.sh start >> /opt/data/zk/logs/log.log 2>&1 &

并查看日志:

如下信息表示启动完成:

23f7908ff7d15db380313a830cc89a27.png

三台依次启动后,查看对应的状态

再bin路径下:

Sh zkServer.sh status

84主机:

0c2fc440569639a03e0b6aa385d9f23d.png

85 主机:

0cbf7d48e6219cc9f43b40d4a0dacd49.png

86 主机:

5b86504ee4cceefbbf5351cc7b585c56.png

由此可见,85主机为zk集群的leader

也可通过ps -ef|grep zookeeper 命令查看zk进程是否正常:

65e10bd2424a430641d36c7499d5e2c2.png

在启动后,对应bin文件夹下,会默认生成zk的启动日志:

a2eb13b8c9f07279c463657c5731fe10.png

Zk 集群安装完成。

Kafka集群

多节点安装kafka比安装多节点zookeeper要简单得多,只需要创建多份配置文件,然后指定他们启动kafka服务即可。

首先创建日志存储路径(三个节点同时操作):

mkdir –p /opt/logs/kafka

kafka 节点集群搭建只需要修改server.properties即可。

三台主机的配置详情为:

84主机的server.properties为:

3a36d5f71e24d30c86a4ac8e3bdd1662.png

85主机的server.properties为:

728a4b906d60b611e56f77291072be51.png

86主机的server.properties为:

c1fe293baeb1cb55c4e79b6f5a44c1c0.png

上面属性中除了break.id 必须唯一外,其他配置相同。

server.properties 配置完成后可启动kafka服务。

后台启动命令:

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

查看启动日志:

启动命令执行后,kafka会自动在解压目录下新建logs目录存放相关日志

执行完查看启动日志:

logs 目录下(启动日志没有放到刚才server.properties配置的log.dirs r中,就是再kafka解压目录的logs里面)确认kafka启动成功:

tail -500f server.log

61c00e7b2ff87c97ea78c4dbb88235f6.png

也可使用jsp来确认kafka启动是否成功:

c07d346eb31cb77b8e45f0606eac895f.png

其他主机依次按照上述操作启动。

至此kafka集群搭建完成。

验证集群

随便找一台主机创建topic

sh ./bin/kafka-topics.sh --zookeeper kafka-1:2181,kafka-2:2181,kafka-3:2181 --describe --topic test-container-topic1

然后执行命令:

//查看集群中topic总集:

sh ./bin/kafka-topics.sh --zookeeper kafka-1:2181,kafka-2:2181,kafka-3:2181 –list

//查看topic名为 topic test-container-topic1 的详细信息

sh ./bin/kafka-topics.sh --zookeeper kafka-1:2181,kafka-2:2181,kafka-3:2181 --describe --topic test-container-topic1

如果上述命令正常返回,那么,集群搭建成功。

以上,本次全部内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值