您的位置:首页 > 其它

kafka_2.10-0.10.1.1集群安装搭建

2020-04-22 12:06 567 查看

一、安装环境:

  1. 安装软件:jdk-8u212-linux-x64.tar.gz、zookeeper- 3.4.12.tar.gz、kafka_2.10-0.10.1.1.tgz
  2. 安装目录:/opt/jdk1.8.0_212、/opt/zookeeper- 3.4.12、/opt/kafka_2.10-0.10.1.1
  3. Linux OS:CentOS release 6.5 (Final)
  4. 安装机器:集群有3台机器,主机名分别为:node01(主)、node02(从)、node03(从)

二、安装步骤

1. jdk安装与配置

1.1. 从官网下载jdk-8u212-linux-x64.tar.gz之后,将其拷贝到/opt目录下解压,并获取其安装目录:

[root@node01 opt]$ tar zxf jdk-8u212-linux-x64.tar.gz
[root@node01 opt]$ cd jdk1.8.0_212/
[root@node01 jdk1.8.0_212]$ pwd
/opt/jdk1.8.0_212

1.2. 配置环境变量:
修改/etc/profile文件,添加修改内容:

export JAVA_HOME=/opt/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH

修改完保存退出,并执行如下命令使其生效:

source /etc/profile  或 . /etc/profile

1.3. 验证jdk环境变量是否配置成功,提示如下则配置成功:

[root@node01 jdk1.8.0_212]$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

集群中其他节点也同样方式配置JDK。

2. Zookeeper集群安装与配置

ZooKeeper用来Kafka元数据信息管理,包括:集群、broker、topic、partition等内容。
ZooKeeper是个开源的分布式的协调服务。分布式应用程序开源基于ZooKeeper实现诸如:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、配置维护功能。
在ZooKeeper中有3个角色,分别是:leader、follower、observer,同一时刻ZooKeeper集群中只会有一个leader,其他都是follower和observer。observer不参与投票,默认情况下只有leader和follower两个角色。

2.1. 同样将zookeeper- 3.4.12.tar.gz 拷贝到 /opt 目录下解压:

[root@node01 opt]$ tar zxf zookeeper-3.4.12.tar.gz
[root@node01 opt]$ cd zookeeper-3.4.12
[root@node01 zookeeper-3.4.12]$ pwd
/opt/zookeeper-3.4.12

2.2. 修改配置文件:
进入conf目录,拷贝 zoo_sample.cfg 并重命名为 zoo.cfg :

[root@node01 zookeeper-3.4.12]$ cd conf/
[root@node01 conf]$ cp zoo_sample.cfg zoo.cfg

修改zoo.conf文件主要几项参数,供参考:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper-3.4.12/data
dataLogDir=/opt/zookeeper-3.4.12/logs
clientPort=2181
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

默认情况下,没有快照日志文件目录dataDir和事务日志文件目录dataLogDir需要手动创建:

[root@node01 zookeeper-3.4.12]$ mkdir data logs

并在data目录下创建文件myid,写入一个数值:

[root@node01 zookeeper-3.4.12]$ echo 1 > data/myid

2.3. 将node01上配置完的zookeeper-3.4.12/文件夹,拷贝到集群其他节点上,本例中有node02和node03:

[root@node01 opt]$ for i in `seq  2 3` ; do scp -r zookeeper-3.4.12/ root@node0$i:/opt

拷贝完之后,分别修改myid文件值即可。本例中node02的myid为2、node03的myid为3;zoo.cfg中的2181(监听客户端)、2888(leader与follower之间的通讯)、3888(leader选举使用)等端口不冲突则默认即可。

2.4. 启动ZooKeeper集群,各节点下执行命令:

[root@node01 zookeeper-3.4.12]$ sh bin/zkServer.sh start conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

status命令输出如上信息即启动成功,jps命令输出QuorumPeerMain:

[root@node01 zookeeper-3.4.12]$ sh bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader
(从节点则为:Mode: follower )
[root@node01 zookeeper-3.4.12]$ jps
18813 QuorumPeerMain

Zookeeper安装和配置参考:
参考链接1
参考链接2
参考链接3
参考链接4
参考链接5

启动报错问题参考:
zookeeper的Will not attempt to authenticate using SASL (无法定位登录配置)

其他参考:
Zookeeper 在 Kafka 中的作用(1)
Zookeeper 在 Kafka 中的作用(2)
命令行zkCli.sh使用指南

3. Kafka的安装与配置

3.1. 下载安装包kafka_2.10-0.10.1.1.tgz并解压:

[root@node01 opt]$ tar zxf kafka_2.10-0.10.1.1.tgz

3.2. 修改config目录下的server.properties,主要几项参数修改:

# 集群中全局唯一的id
broker.id=0
# socket监听的地址,端口默认为9092,建议进行显式配置,避免多网卡时解析有误
listeners=PLAINTEXT://node01:9092
# 各个topic消息数据目录
log.dirs=/opt/kafka_2.10-0.10.1.1/kafka-logs
# zookeeper连接地址,默认端口2181
zookeeper.connect=node01:2181,node02:2181,node03:2181

其中log.dirs目录需要手动创建:
[root@node01 kafka_2.10-0.10.1.1]$ mkdir kafka-logs

3.3. 将node01节点上修改好的kafka_2.10-0.10.1.1/文件夹,拷贝到集群其他节点:

[root@node01 opt]$ for i in `seq  2 3` ; do scp -r kafka_2.10-0.10.1.1/ root@node0$i:/opt

并修改broker.id和listers2个参数,9092(broker监听客户端)端口不冲突则默认即可,本例中修改:
node02:

broker.id=1
listers=PLAINTEXT://node02:9092

node03:

broker.id=2
listers=PLAINTEXT://node03:9092

3.4. 启动Kafka集群,分别到各节点执行命令,以下命令为kafka后台方式启动:

[root@node01 kafka_2.10-0.10.1.1]$ sh bin/kafka-server-start -daemon config/server.properties

jps命令输出Kafka即启动成功:

[root@node01 kafka_2.10-0.10.1.1]$ jps
18681 Kafka

Kafka安装和配置参考:
参考链接1
参考链接2
参考链接3
参考链接4

关于Kafka技术博文参考:
参考链接1
参考链接2

其他参考:
kafka listeners 和 advertised.listeners 的应用
B站-极客时间-如何高效阅读源码-kafka

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
king-hero 发布了7 篇原创文章 · 获赞 5 · 访问量 135 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: