背景:根据工作要求,计算机需要在离线无网的状态下搭建Kafka进行单机测试
系统:VMware虚拟机中 安装了 Ubuntu18.4.1
步骤如下:
- 准备工作
- 安装java环境
- 搭建zookeeper集群
- 搭建kafka单机版
1. 准备工作
1.1 安装包
jdk-8u162-linux-x64.tar
zookeeper-3.4.12.tar
kafka_2.11-2.0.0 .tgz
首先将文件从能上网的电脑下载下来,然后拷贝到U盘里,在离线的主机上如果要把文件拷贝到虚拟机里,可以安装VMware Tools工具,如何安装可从网上搜索安装方法。默认好像不能直接拷贝到根目录下的文件夹中,可以先拷贝到普通用户的【下载】文件夹中。
1.2 准备1台主机或者虚拟机(ubuntu系统)
我用的是虚拟机,ip和子网掩码设置为
ip | 子网掩码 |
192.168.1.41 | 255.255.255.0 |
2. 安装JAVA环境
准备安装包 jdk-8u162-linux-x64.tar
在虚拟机里用 Ctrl+Alt+T 打开终端,首先用命令 su root 切换为root权限,记得输入密码,以下操作都在root权限下进行。
用cd 命令进入到安装包拷贝的位置,将安装包移到/usr/local目录下
mv jdk-8u162-linux-x64.tar.gz /usr/local
解压文件
tar -zxvf jdk-8u162-linux-x64.tar.gz
重命名文件夹为java
mv jdk-8u162-linux-x64 java
用vim打开/etc/profile文件(Linux下配置系统环境变量的文件)
这里注意,Ubuntu默认安装了vi,如果要用vim,需要自行安装,没有网络的话,安装比较繁琐,我就没安装,直接用的vi,而vi默认情况下方向键和退格键不太好使,可参考博客 https://blog.csdn.net/unit666/article/details/107320261进行解决。
这里提醒一下,vim是升级版,比较好用,里面有颜色提醒,能用vim就用vim,不过下面的操作都类似。
vi /etc/profile
按i进入编辑模式,在文件末尾添加如下JAVA环境变量
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
添加环境变量后,按 esc 退出编辑模式,然后输入:,然后输入小写的wq ,按回车保存(也可以按shift + zz 进行保存)。
最后,需要让该环境变量生效,执行如下代码:
source /etc/profile
检验JAVA是否安装成功
echo $JAVA_HOME # 检验变量值
java -version
java
javac
如果设置正确的话,java -version 会输出 java 的版本信息,java 和 javac 会输出命令的使用指导。
3. 搭建zookeeper集群
准备安装包 zookeeper-3.4.12.tar
将安装包移到/usr/local目录下
mv zookeeper-3.4.12.tar /usr/local
解压文件
tar -zxvf zookeeper-3.4.12.tar
重命名文件夹为zookeeper
mv zookeeper-3.4.12 zookeeper
配置zookeeper环境变量,首先打开profile文件
vi /etc/profile
按i进入编辑模式,在文件末尾添加zookeeper环境变量
#set zookeeper environment
export ZK_HOME=/usr/local/zookeeper
export PATH=$ZK_HOME/bin:$PATH
保存文件后,让该环境变量生效
source /etc/profile
打开zookeeper配置文件
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
vi /usr/local/zookeeper/conf/zoo.cfg
修改zookeeper配置文件如下
#修改数据文件夹路径
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
# the port at which the clients will connect
clientPort=2181
server.1=192.168.1.41:2888:3888
#其它不变
创建数据文件夹和数据log文件夹
mkdir /usr/local/zookeeper/data
mkdir /usr/local/zookeeper/datalog
在虚拟机上启动zookeeper
/usr/local/zookeeper/bin/zkServer.sh start
启动后,可查看启动结果
/usr/local/zookeeper/bin/zkServer.sh status
4. 搭建kafka
准备安装包 kafka_2.11-2.0.0 .tgz
将安装包移到/usr/local目录下
mv kafka_2.11-2.0.0 .tgz /usr/local
解压文件
tar -zxvf kafka_2.11-2.0.0 .tgz
重命名文件夹为kafka
mv kafka_2.11-2.0.0 kafka
配置kafka环境变量,首先打开profile文件
vi /etc/profile
按i进入编辑模式,在文件末尾添加kafka环境变量
#set kafka environment
export KAFKA_HOME=/usr/local/kafka
PATH=${KAFKA_HOME}/bin:$PATH
保存文件后,让该环境变量生效
source /etc/profile
修改server.properties配置文件
打开配置文件
vi /usr/local/kafka/config/server.properties
修改配置如下(IP地址应该根据实际情况填写)
broker.id=1
listeners=PLAINTEXT://192.168.1.41:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://192.168.1.41:9092
启动kafka(要确保zookeeper已启动)
启动kafka
/usr/local/kafka/bin/kafka-server-start.sh -daemon config/server.properties
进入kafka的bin目录,创建一个测试topic
./kafka-topics.sh --create --zookeeper 192.168.1.41:2181 --replication-factor 1 --partitions 1 --topic test
查看创建的topic信息
./kafka-topics.sh --list --zookeeper 192.168.1.41:2181
向测试topic写入数据
./kafka-console-producer.sh --broker-list 192.168.1.41:9092 --topic test
此时会出现一个符号,输入数据后按回车键,就可以向topic写入数据
消费者读取数据,可以另外打开一个终端,获取写入的数据
./kafka-console-consumer.sh --bootstrap-server 192.168.244.135:9092 --topic test --from-beginning
注意,此时可能会出现 第306行:exec: java: 未找到的错误,此时重新source /etc/profile 使环境变量生效就可以了
按Ctrl+C可以退出编辑环境
搭建完毕!
如果需要搭建Kafka集群,可以参考https://www.jianshu.com/p/bdd9608df6b3
参考文章:
(1)https://www.jianshu.com/p/bdd9608df6b3
(2)https://blog.csdn.net/luyinxing1/article/details/101204506