1、下载kafka
首先我们需要下载Kafka的安装包,下载地址:https://mirrors.bfsu.edu.cn/apache/kafka/
下载完成后将Kafka解压到指定目录:
cd /usr/local/share/soft
tar -xzf kafka_2.13-2.7.0.tgz
解压完成后进入到解压目录:
cd kafka_2.13-2.7.0
在启动kafka之前,需要先启动zookeeper,这里用的是kafka内置的zookeeper
后台运行:
# 后台运行服务,并把日志输出到当前文件夹下的zookeeper-out.file文件中
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper-out.log 2>&1 &
前台运行:
# 前台运行
bin/zookeeper-server-start.sh config/zookeeper.properties
在使用后台运行时,发现启动不了,直接退出了:
[1]+ Exit 127 nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper-out.file 2>&1 (wd: /usr/local/share/soft/kafka_2.13-2.7.0/config) (wd now: /usr/local/share/soft/kafka_2.13-2.7.0)
因为直接用的是后台启动,看不到报错信息,然后就用前台启动试了一下,发现报错信息为:
/usr/local/share/soft/kafka_2.13-2.7.0/bin/kafka-run-class.sh: 第 318 行:exec: java: 未找到
根据错误提示,我们打印以下该文件的318行:
exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@"
我们发现和java有关的就是$JAVA,意思是我们要一个名为JAVA的变量,还可以看到它之前有一个exec,大概是执行的意思,大概猜到需要使用java命令,所以我们在配置文件中加入该环境变量,即需要配置jdk.这里大家可以自行配置,也可以参考 linux下搭建java环境配置jdk+tomcat配置
接着启动zookeeper,服务将运行在2181端口(可在config文件夹在的zookeeper.properties文件中查看该端口)
由于目前Kafka是部署在Linux服务器上的,外网如果想要访问,需要修改Kafka的配置文件config/server.properties,修改下Kafka的监听地址,否则会无法连接;
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://192.168.1.67:9092
最后启动Kafka服务,服务将运行在9092端口。
# 后台运行服务,并把日志输出到当前文件夹下的kafka-out.file文件中
nohup bin/kafka-server-start.sh config/server.properties > kafka-out.log 2>&1 &
# 前台运行服务
bin/kafka-server-start.sh config/server.properties