Linux下配置kafka及zookeeper环境记录

1 首先需要安装JDK

 参考链接:https://blog.cnbuilder.cn/archives/linuxinstalljdk

yum -y list java*

yum install -y java-1.8.0-openjdk.x86_64

java -version

输入java -version,出现相应版本则安装成功。

 

2 安装zookeeper

参考链接: https://blog.cnbuilder.cn/archives/linuxinstallzookeeper

  • 下载zookeeper镜像(注意!要下带bin的那个版本)
  • 上传至服务器(rz -bye)
  • 解压:
tar -zxvf zookeeper-3.4.10.tar.gz 
  • 配置环境变量:
  • zookeeper 下 pwd 命令,复制路径。
  • 配置:
vim /etc/profile
export zookeeper_home=/DATA/zookeeper/zookeeper-3.4.10(zookeeper目录路径)
source /etc/profile
sh $zookeeper_home/bin/zkServer.sh start 

注意:最后一步若报错,请解压zookeeper后,把config目录下的zoo_sample.cfg改名为zoo.cfg即可。

3 安装kafka https://blog.csdn.net/weixin_39984161/article/details/91971731

  • 下载kafka镜像
  • 上传至服务器(rz -bye)
  • 解压:
tar -zxvf xxx.tar.gz 

修改配置 https://blog.csdn.net/msllws/article/details/106615536

#进入配置目录
cd kafka_2.12-2.5.0/config/
​
#备份配置文件
cp server.properties server.properties.bak
​
#修改配置文件
vim server.properties
​
#修改及添加以下配置
broker.id=1
listeners=PLAINTEXT://127.0.0.1:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092


''''''

本项目中
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://本机ip:9092


''''''
​
#其他自定义配置(根据实际修改)
zookeeper.connect=127.0.0.1:2181
zookeeper.connection.timeout.ms=18000
​
#保存退出
:wq
​

4 启动测试

先启动zookeeper

#移到工作目录
cd /opt/kafka/kafka_2.12-2.5.0/bin/
​
#启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
​
#关闭kafka服务
./kafka-server-stop.sh

配置说明:

#配置说明
broker.id:当前机器在集群中的唯一标识。例如有三台Kafka主机,则分别配置为1,2,3。
​
listeners:服务监听端口。
​
advertised.listeners:提供给生产者,消费者的端口号,即外部访问地址。默认为listeners的值。
​
zookeeper.connect:zookeeper连接地址。如有集群配置,每台Kafka主机都需要连接全部zookeeper服务,实例如下:
​
zookeeper.connect=192.168.1.41:2181,192.168.1.42:2181,192.168.1.47:2181
zookeeper.connection.timeout.ms:zookeeper连接超时时间。
​
​
127.0.0.1是回送地址,协议立即返回不进行任何网络传输。
​
https://blog.csdn.net/u012814696/article/details/55098249
​
127.0.0.1 是一个环回地址,并不表示“本机”。0.0.0.0才是真正表示“本网络中的本机”。
​
在实际应用中,一般我们在服务端绑定端口的时候可以选择绑定到0.0.0.0,这样我的服务访问方就可以通过我的多个ip地址访问我的服务。 比如我有一台服务器,一个外网地址A,一个内网地址B,如果我绑定的端口指定了0.0.0.0,那么通过内网地址或外网地址都可以访问我的应用。但是如果我之绑定了内网地址,那么通过外网地址就不能访问。 所以如果绑定0.0.0.0,也有一定安全隐患,对于只需要内网访问的服务,可以只绑定内网地址。

测试创建topic

#移到工作目录
cd /opt/kafka/kafka_2.12-2.5.0/bin/
​
#创建topic
./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic topic1
​
#查看topic信息
./kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic topic1

测试消息:

#启动生产者控制台
./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic topic1
​
#启动消费者控制台(新开一个窗口)
./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic topic1 --from-beginning 

5 配置可视化管理界面

链接: https://gitee.com/freakchicken/kafka-ui-lite 

步骤:

  • 下载kafka-ui-lite.jar包
  • 启动命令
java -jar kafka-ui-lite.jar

 

https://www.jianshu.com/p/9e72b3942c59 kafka使用常见报错及解决方法

server.properties中有两个listeners。 listeners:启动kafka服务监听的ip和端口,可以监听内网ip和0.0.0.0(不能为外网ip),默认为java.net.InetAddress.getCanonicalHostName()获取的ip。advertised.listeners:生产者和消费者连接的地址,kafka会把该地址注册到zookeeper中,所以只能为除0.0.0.0之外的合法ip或域名 ,默认和listeners的配置一致。

查看端口可用命令:

netstat -anptl | grep 9092

出错:

/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/bin/java: No such file or directory  需要配置JAVA环境变量 https://blog.csdn.net/wulitaotao96/article/details/116944603

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值