Kafka集群安装部署(超详细操作演示)—— Linux

Posted 期望上岸的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka集群安装部署(超详细操作演示)—— Linux相关的知识,希望对你有一定的参考价值。

Kafka集群安装部署(超详细操作演示)—— Linux

简介

  • Kafka是一款分布式的去中心化的高吞吐低延迟订阅模式的消息队列系统。
  • RabbitMQ一样,Kafka也是消息队列。不过RabbitMQ多用于后端系统,因其更加专注于消息的延迟和容错
  • Kafka多用于大数据体系,因其更加专注于数据的吞吐能力
  • Kafka多数都是运行在分布式(集群化)模式下,所以课程将以3台服务器,来完成Kafka集群的安装部署。

安装

前提条件:

  • 确保已经跟随前面的安装教程,安装并部署了JDKZookeeper服务

Kafka的运行依赖JDK环境和Zookeeper请确保已经有了JDK环境和Zookeeper

没安装的可以看完之前的博客:
Linux系统安装部署Tomcat(超详细操作演示)
Zookeeper集群安装部署(超详细操作演示)

1、【在node1操作】 下载并上传Kafka的安装包

# 下载安装包
wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz

也可以下载好,再上传:

rz


查看是否上传成功:

2 、【在node1操作】 解压

# 此文件夹如果不存在需先创建
mkdir -p /export/server 

# 解压
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/


查看是否解压成功:

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

3、【在node1操作】 修改Kafka目录内的config目录内的server.properties文件

cd /export/server/kafka/config
vim server.properties

# 指定broker的id
broker.id=1

# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT://node1:9092

Esc退出插入模式,输入/dirs 搜索:

# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data

Esc退出插入模式,输入/connect 搜索:

# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181

Esc退出插入模式,输入:wq 保存退出。

4、【在node1操作】node1kafka复制到node2node3

cd /export/server

# 复制到node2同名文件夹
scp -r kafka_2.12-2.4.1 node2:`pwd`/

# 复制到node3同名文件夹
scp -r kafka_2.12-2.4.1 node3:$PWD

5、【在node2操作】

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

cd /export/server/kafka/config
vim server.properties
# 指定broker的id
broker.id=2

# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT://node2:9092

Esc退出插入模式,输入:wq 保存退出。

6、【在node3操作】

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

cd /export/server/kafka/config
vim server.properties
# 指定broker的id
broker.id=3

# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT://node3:9092

Esc退出插入模式,输入:wq 保存退出。

7、启动kafka

# 请先确保Zookeeper已经启动了
# 方式1:【前台启动】分别在node1、2、3上执行如下语句 (一般很少用!)
/export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties

# 方式2:【后台启动】分别在node1、2、3上执行如下语句
nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties 2>&1 >> /export/server/kafka/kafka-server.log &

8、验证Kafka启动

# 在每一台服务器执行
jps

测试Kafka能否正常使用

1、创建测试主题

# 在node1执行,创建一个主题
/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 3 --topic test

2、运行测试,请在FinalShell中打开2个node1的终端页面

# 打开一个终端页面,启动一个模拟的数据生产者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-producer.sh --broker-list node1:9092 --topic test
# 再打开一个新的终端页面,在启动一个模拟的数据消费者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning

左边输入,右边能同步输出,就成功啦!

Zookeeper集群安装部署(超详细操作演示)—— Linux

Zookeeper集群安装部署(超详细操作演示)—— Linux

简介

  • ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是HadoopHbase的重要组件。

  • 它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护域名服务分布式同步组服务等。

  • 除了为HadoopHBase提供协调服务外,Zookeeper也被其它许多软件采用作为其分布式状态一致性的依赖,比如Kafka,又或者一些软件项目中,也经常能见到Zookeeper作为一致性协调服务存在。

  • Zookeeper不论是大数据领域亦或是其它服务器开发领域,涉及到 分布式状态一致性 的场景,总有它的身影存在。

安装

  • Zookeeper是一款分布式的集群化软件,可以在多台服务器上部署,并协同组成分布式集群一起工作。

1、前提,要确保已经完成了 集群化环境前置准备 环节的全部内容

2、node1上操作】 下载Zookeeper安装包,并解压

#下载:
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz

rz上传:

# 确保如下目录存在,不存在就创建,如果前面是跟着我的教程,是已经存在了!!!
mkdir -p /export/server

# 解压
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server


查看

3、【node1上操作】 创建软链接

ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper

4、【node1上操作】 修改配置文件

先进入/export/server/zookeeper/conf/,需要先改个名:


vim zoo.cfg

tickTime=2000
# zookeeper数据存储目录
dataDir=/export/server/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888


保存退出!

5、【node1上操作】 配置myid

# 1. 创建Zookeeper的数据目录
mkdir /export/server/zookeeper/data

# 2. 创建文件,并填入1
vim /export/server/zookeeper/data/myid
# 在文件内填入1即可


保存退出!

6、【在node2和node3上操作】 ,创建文件夹

mkdir -p /export/server

7、【node1上操作】Zookeeper 复制到 node2node3

cd /export/server
scp -r apache-zookeeper-3.5.9-bin node2:`pwd`/
scp -r apache-zookeeper-3.5.9-bin node3:`pwd`/


查看是否复制成功:
node2:

node3:

8、【node2上操作】

# 1. 创建软链接
ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper

# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改内容为2

修改完保存退出,查看内容:

cat myid

9、【node3上操作】

# 1. 创建软链接
ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper

# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改内容为3

测试

1、【在node1、node2、node3上分别执行】 启动 Zookeeper

# 启动命令
/export/server/zookeeper/bin/zkServer.sh start
# 启动Zookeeper

2、【在node1、node2、node3上分别执行】 检查Zookeeper进程是否启动

jps
# 结果中找到有:QuorumPeerMain 进程即可



3、【node1上操作】 验证Zookeeper

/export/server/zookeeper/bin/zkCli.sh
# 进入到Zookeeper控制台中后,执行

ls /
# 如无报错即配置成功,且能看到 [zookeeper]


至此,集群上的zookeeper可以互相通信啦!

以上是关于Kafka集群安装部署(超详细操作演示)—— Linux的主要内容,如果未能解决你的问题,请参考以下文章

手把手超详细Docker部署MongoDB集群

zookeeper-kafka(集群版)安装部署以及java调用工具类

超详细部署Kafka教程

K8S最新版本集群部署超详细(k8s版本1.5.1)docker 版本19.03.1以及基本操作和服务介绍。

GFS分布式文件系统+集群部署(图文超详细)

Datax-web 集群化部署使用(图文教程超详细)