# kafka源码编译安装

准备三台服务器
192.168.xxx.xxx
    192.168.xxx.xxx
    192.168.xxx.xxx
  • 1.
  • 2.
  • 3.
安装kafka前安装JDK和zookeeper如下步骤:
JDK配置安装
官网地址( https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html )
或者yum安装也可以,yum install java-1.8.0-openjdk-devel 即可。
  • 1.
  • 2.
解压文件到指定目录(所有节点机器都做,也可忽略后面做节点复制)
tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local/  #解压文件到指定目录
mv jdk1.8.0_291/ java    #修改文件名
cd java
  • 1.
  • 2.
  • 3.
  • 4.
配置环境变量
vi etc/profile

末尾添加如下内容:

export JAVA_HOME=/usr/local/java        
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
使配置文件生效
source /etc/profile
  • 1.
检查验证
java -version
  • 1.

Linux搭建Kafka集群&Zookeeper_java

zookeeper 配置安装

官网下载地址( https://zookeeper.apache.org/releases.html)下载源码包文件到本地通过远程连接工具上载文件到服务器。

解压文件

推荐下载编译后的bin源码包

mkdir -p /data/aicloud//
tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz -C /data/aicloud/zookeeper/
mv apache-zookeeper-3.8.3-bin.tar.gz/ zookeeper-3.8.3
  • 1.
  • 2.
  • 3.

创建文件目录用于存放数据

cd /usr/local/zookeeper
mkdir data    #存放数据
mkdir logs    #存放日志文件
  • 1.
  • 2.
  • 3.

Linux搭建Kafka集群&Zookeeper_zookeeper_02

进入conf文件夹,将zoo_sample.cfg改为zoo.cfg

cd /data/aicloud/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
  • 1.
  • 2.
#备份zoo.cfg  
mv zoo.cfg zoo.cfg_back

#开始编辑 
vim zoo.cfg

#粘贴如下信息结合实际进行修改ip地址。
tickTime=2000  
initLimit=10
cLimit=5
dataDir=/data/aicloud/zookeeper/data
clientPort=2181
#zookeeper
server.1=192.168.x.x:2888:3888
server.2=192.168.x.x:2888:3888
server.3=192.168.x.x:2888:3888
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

Linux搭建Kafka集群&Zookeeper_java_03

将配置好的 zookeeper 复制到其他集群节点上,三台机器的配置是一样的。

scp -r /data/aicloud/zookeeper root@192.168.xxx.xxx:/data/aicloud/zookeeper
scp -r /data/aicloud/zookeeper root@192.168.xxx.xxx:/data/aicloud/zookeeper
scp -r /data/aicloud/zookeeper root@192.168.xxx.xxx:/data/aicloud/zookeeper

##复制安装完成的java 到其它集群节点(如已完成JDK安装请忽略)
scp -r /usr/local/java/ root@192.168.xxx.xxx:/usr/local/java
scp -r /usr/local/java/ root@192.168.xxx.xxx:/usr/local/java
scp -r /usr/local/java/ root@192.168.xxx.xxx:/usr/local/java

## 配置其它集群节点java环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/java        
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
启动节点(所有机器执行下述操作)
/data/aicloud/zookeeper/zookeeper-3.8.3/bin
  • 1.

Linux搭建Kafka集群&Zookeeper_kafka_04

./zkServer.sh start #启动命令
./zkServer.sh status # 查看运行状态
  • 1.
  • 2.

kafka配置安装

官网地址下载( http://kafka.apache.org/downloads)

上载文件到服务器指定目录

mkdir -p /data/aicloud/kafka/
cd /data/aicloud/kafka/
  • 1.
  • 2.

解压文件

tar -zxvf kafka_2.12-3.6.1.tgz -C /data/aicloud/kafka/
mv kafka_2.12-3.6  kafka-2.12
cd kafka-2.12
mkdir kafka-logs //保存日志文件目录 非必须创建
  • 1.
  • 2.
  • 3.
  • 4.

修改配置文件

cd /data/aicloud/kafka/kafka-2.12/config
  • 1.
##备份配置文件 
mv server.properties server.properties-back

##编辑 vim server.properties 三台机器都粘贴如下配置即可。

##修改 server.properties配置文件,在server.properties中主要修改如下配置:
broker.id=1 !三台主机分别为 1 2 3 
  
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.xxx.xxx:9092

log.dirs=/data/aicloud/kafka/kafka-2.12/kafka-logs //日志路径根据自己的日志路径

##topic 在当前broker上的分片个数,与broker保持一致
num.partitions=3

##设置zookeeper集群地址与端口如下:
zookeeper.connect=192.168.xxx.xxx:2181,192.168.xxx.xxx:2181,192.168.xxx.xxx:2181
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
##进入bin目录
cd /data/aicloud/kafka/kafka-2.12/bin
./kafka-server-start.sh -daemon ../config/server.properties  
jps //验证
  • 1.
  • 2.
  • 3.
  • 4.

测试

1.查看topic 列表

cd /data/aicloud/kafka/
bin/kafka-topics.sh --list --zookeeper 192.168.xx.xx:2181 
##这里的ip对应server.properties 配置所在服务器端口  //新安装配置的kafka下无数据
  • 1.
  • 2.
  • 3.

2.创建topic

cd /data/aicloud/kafka/
bin/kafka-topics.sh --describe --zookeeper 192.168.xxx.xxx:2181 --topic test  //创建topic 取名test
  • 1.
  • 2.

3.在其中一台服务器上创建生产者

cd /data/aicloud/kafka/
bin/kafka-console-producer.sh --broker-list 192.168.xx.xx:9092,192.168.xxx.xxx:9092,192.168.xxx.xxx:9092 --topic test
  • 1.
  • 2.

4.在另外两台服务器创建消费者

cd /data/aicloud/kafka/
bin/kafka-console-consumer.sh --bootstrap-server 192.168.xxx.xxx:9092,192.168.xxx.xxx:9092,192.168.xxx.xxx:9092 --topic test --from-beginning
  • 1.
  • 2.

Linux搭建Kafka集群&Zookeeper_java_05

Linux搭建Kafka集群&Zookeeper_kafka_06

测试完成!