CentOS 7 环境下的KAFKA部署文档

CentOS 7 环境下的KAFKA部署文档 

一、JDK环境准备

1、安装JDK

  JDK包下载地址https://www.oracle.com/java/technologies/downloads/#java8  (下载需要登录Oracle账户)

  根据自身需要下载不同版本的JDK安装包(这里选择的是jdk-8u341-linux-x64.tar.gz

  

2、拷贝JDK安装包(需要root权限)

  使用rz命令(或其它方式)将JDK安装包上传至服务器(没有rz命令的可以使用 yum install -y lrzsz 安装)

[root@King ~]# rz
[root@King ~]# ll
-rw-------. 1 root root      1475 8月   1 08:18 anaconda-ks.cfg
-rw-r--r--  1 root root         0 8月   1 13:05 bb.log
-rw-r--r--  1 root root 148162542 8月   1 12:37 jdk-8u341-linux-x64.tar.gz

  解压文件到文件系统下

[root@King ~]# mkdir /usr/java
[root@King ~]# chmod +777 /usr/java
[root@King ~]# tar -zxvf jdk-8u341-linux-x64.tar.gz  -C /usr/java/

  重命名

[root@King ~]# cd /usr/java/
[root@King /usr/java]# mv jdk1.8.0_341 jdk1.8

3、配置环境变量

  添加环境变量,在文件末尾添加

[root@King /usr/java]# vim /etc/profile
#Path JDK 1.8
JAVA_HOME=/usr/java/jdk1.8
JRE_HOME=/usr/java/jdk1.8/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

  重新加载/etc/profile配置文件,使配置生效

[root@King /usr/java]# source /etc/profile

4、查看JDK环境是否安装成功

[root@King /usr/java]# java -version
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)

  至此JDK环境安装成功

 

二、安装ZooKeeper

1、下载ZooKeeper

  官网地址 https://zookeeper.apache.org/releases.html

  这里使用的是 Apache ZooKeeper 3.7.1

  

[root@King /usr/java]# cd
[root@King ~]# wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz --no-check-certificate

  (服务器可以连接外网可以使用wget命令,如未安装wget可使用yum install -y wget进行安装;其他上传方式也可以)

[root@King ~]# ll
-rw-------. 1 root root      1475 8月     1 08:18 anaconda-ks.cfg
-rw-r--r--  1 root root   3492564 8月     1 12:50 apache-zookeeper-3.7.1-bin.tar.gz
-rw-r--r--  1 root root         0 8月     1 13:05 bb.log
-rw-r--r--  1 root root 148162542 8月     1 12:37 jdk-8u341-linux-x64.tar.gz

2、安装ZooKeeper

[root@King ~]# mkdir /apps
[root@King ~]# tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /apps/
[root@King ~]# cd /apps/
[root@King /apps]# mv apache-zookeeper-3.7.1-bin/ zookeeper

  修改 ZooKeeper配置文件

[root@King /apps]# cd zookeeper/conf/
[root@King /apps/zookeeper/conf]# cp zoo_sample.cfg ./zoo.cfg
[root@King /apps/zookeeper/conf]# ll
-rw-r--r-- 1 1000 1000  535 5月     7 14:44 configuration.xsl
-rw-r--r-- 1 1000 1000 3435 5月     7 14:44 log4j.properties
-rw-r--r-- 1 root root 1148 8月     5 16:09 zoo.cfg
-rw-r--r-- 1 1000 1000 1148 5月     7 14:44 zoo_sample.cfg
[root@King /apps/zookeeper/conf]# vim zoo.cfg
dataDir=/apps/zookeeper/data         #修改数据存放目录
dataLogDir=/apps/zookeeper/log       #新增数据日志存放位置

  创建data、log文件

[root@King /apps/zookeeper/conf]# mkdir /apps/zookeeper/data
[root@King /apps/zookeeper/conf]# mkdir /apps/zookeeper/log

  修改ZooKeeper的运行环境脚本

[root@King /apps/zookeeper/conf]# cd ../bin/
[root@King /apps/zookeeper/bin]# vim zkEnv.sh
JAVA_HOME="/usr/java/jdk1.8"       #大概在第77行,在JAVA_HOME前添加JAVA的安装目录(上文安装JDK中有提到)

  

  添加ZooKeeper运行环境,在文件末尾添加

[root@King /apps/zookeeper/conf]# vim /etc/profile
export PATH=$PATH:/apps/zookeeper/bin

  重新加载/etc/profile文件

[root@King /apps/zookeeper/conf]# source /etc/profile

 3、启动ZooKeeper服务

[root@King /apps/zookeeper/conf]# cd /apps/zookeeper/bin/
[root@King /apps/zookeeper/bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /apps/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

 

三、部署KAFKA服务

1、下载kafka

  官网地址 https://kafka.apache.org/downloads

  这里使用的是  kafka_2.13-3.2.0.tgz

  

[root@King /usr/lib/systemd/system]# cd
[root@King ~]# wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz --no-check-certificate
[root@King ~]# ll
-rw-------.  1 root root      1475 8月     1 08:18 anaconda-ks.cfg
-rw-r--r--   1 root root   3492564 8月     1 12:50 apache-zookeeper-3.7.1-bin.tar.gz
-rw-r--r--   1 root root         0 8月     1 13:05 bb.log
-rw-r--r--   1 root root 148162542 8月     1 12:37 jdk-8u341-linux-x64.tar.gz
-rw-r--r--   1 root root 103955943 8月     1 15:42 kafka_2.13-3.2.0.tgz

2、安装KAFKA

[root@King ~]# tar -zxvf kafka_2.13-3.2.0.tgz -C /apps/
[root@King ~]# cd /apps/
[root@King /apps]# mv kafka_2.13-3.2.0/ kafka
[root@King /apps]# vim ./kafka/config/server.properties
broker.id=0                                    #第24行,broker 的编号,如果集群中有多个 broker,则每个 broker 的编号需要设置的不同
listeners = PLAINTEXT://192.168.0.101:9092     #第33行,取消注释并顶到行首。修改为KAFKA服务器的IP、端口号
log.dirs=/apps/kafka/kafka-logs                #第62行,设置KAFKA消息日志位置
zookeeper.connect=192.168.0.101:2181           #第125行,修改与ZooKeeper的通讯信息

  添加KAFKA运行环境,在文件末尾添加

[root@King /apps]# vim /etc/profile
export KAFKA_HOME=/apps/kafka
export PATH=$PATH:$KAFKA_HOME/bin

  重新加载/etc/profile文件

[root@King /apps]# source /etc/profile

3、启动KAFKA服务

[root@King /apps]# cd ./kafka/bin/
[root@King /apps/kafka/bin]# ./zookeeper-server-start.sh -daemon /apps/kafka/config/zookeeper.properties
[root@King /apps/kafka/bin]# ./kafka-server-start.sh -daemon /apps/kafka/config/server.properties

 

四、设置ZooKeeper及KAFKA的开机自启动脚本

1、编写启动脚本

[root@King /apps/kafka/bin]# mkdir /apps/sh
[root@King /apps/kafka/bin]# chmod +777 /apps/sh
[root@King /apps/kafka/bin]# vim /apps/sh/kafka_start.sh
#!/bin/bash
#ZooKeeper开机自启动
su - root -c '/apps/zookeeper/bin/zkServer.sh start'
sleep 3s
#KAFKA开机自启动
echo "zookeeper start ............."
cd /apps/kafka/bin
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
sleep 3s
echo "kafka start ................."
./kafka-server-start.sh -daemon ../config/server.properties
echo "kafka is running ............"

[root@King /apps/kafka/bin]# chmod +777 /apps/sh/kafka_start.sh

2、设置开机自启动

  在文件末尾添加

[root@King /apps/kafka/bin]# vim /etc/rc.local
#ZooKeeper、KAFKA开机自启动
su - root -c '/apps/sh/kafka_start.sh'

[root@King /apps/kafka/bin]# chmod +777 /etc/rc.local
[root@King /apps/kafka/bin]# chmod +777 /etc/rc.d/rc.local

  注意:关机前要停掉这两个服务,不然开机自启动会失败。先停KAFKA,再停ZooKeeper

[root@King ~]# /apps/kafka/bin/kafka-server-stop.sh
[root@King ~]# /apps/zookeeper/bin/zkServer.sh stop

 

五、KAFKA简单的功能测试

注意:新旧版本的KAFKA在命令上可能存在差异

创建Topic

[root@King /apps/kafka/bin]# pwd
/apps/kafka/bin
[root@King /apps/kafka/bin]# kafka-topics.sh --create --bootstrap-server 192.168.0.101:9092 --replication-factor 1 --partitions 1 --topic hello_word
Created topic hello_word.

查看Topic列表

[root@King /apps/kafka/bin]# kafka-topics.sh  --bootstrap-server 192.168.0.101:9092 --list
hello_word

  (这里可能有报错,不用管;可能是编码集问题。)

查看对应Topic描述

[root@King /apps/kafka/bin]# kafka-topics.sh --describe  --bootstrap-server 192.168.0.101:9092 --topic hello_word
Topic: hello_word  TopicId: eeBfTYddS5udrPHzsVktBw   PartitionCount: 1    ReplicationFactor: 1      Configs: segment.bytes=1073741824
         Topic: hello_word  Partition: 0     Leader: 0 Replicas: 0     Isr: 0

删除Topic

[root@King /apps/kafka/bin]# kafka-topics.sh -delete --bootstrap-server 192.168.0.101:9092 --topic hello_word

打开2个会话窗口,分别作为生产者端、消费者端。(先将命令分别执行,在生产者端输入字符,查看消费者端是否收到)

  在生产者端发送数据

[root@King /apps/kafka/bin]# kafka-console-producer.sh --bootstrap-server 192.168.0.101:9092 --topic hello_word
>abcdefg
>nihao
>hello word

  在消费者端查看数据接收情况

[root@King /apps/kafka/bin]# kafka-console-consumer.sh --bootstrap-server 192.168.0.101:9092 --topic hello_word
abcdefg
nihao
hello word

 

posted @ 2022-08-08 17:51  某人呦  阅读(28)  评论(0)    收藏  举报