1.Linux
- 下载 kafka压缩包, VirtualBox , CentOs映像文件,
- 安装VirtualBox
- 在virtualBox安装CentOs
- 出现这个问题更新一下VM就好
- 设置CentOS网络为桥接网卡
- 打开CentOS,下载网络工具,输入指令:yum install net-tools
- 输入y
- 使用ifconfig命令查看CentOS的IP
- 下载安装WinSCP
- 使用SCP传输文件到CentOS,设置属性后,直接点击登录,提示输入密码
- 将kafka压缩包拖过去,传输给CentOS
- 下载并安装Xshell,打开Xshell,远程连接CentOS。按提示输入用户名和密码
- CentOS在/opt目录下建立kafka-server文件夹,把kafka压缩包解压到该文件夹目录下
cd /opt
mkdir kafka-server
cd /opt/kafka-server
tar -xzvf kafka.tar.gz
- 搭建kafka服务器并测试
kafka2.0.0第一课 部署配置启动_51CTO博客_kafka部署安装
cd kafka_2.11-2.0.0
1:修改文件运行权限
chmod a+x bin/* //赋予服务器脚本运行需要的执行权限
2:修改配置文件中服务器ip地址
listeners=PLAINTEXT://192.168.11.173:9092 //修改内容如左
打开配置文件,把红框中的IP地址和端口改为本机的ip地址和需要使用的端口(一般是9092)
3:修改防火墙配置开放端口
firewall-cmd --zone=public --add-port=9092/tcp --permanent 开放9092端口
firewall-cmd --reload 配置立即生效
4:开启服务
查看bin目录下可使用的命令
启动服务,命令最后的”&”的作用是在后台运行该程序,就是说会一直占用控制台,无法启动其他程序。
进入kafka_2.11-2.0.0文件夹
bin/zookeeper-server-start.sh config/zookeeper.properties &
//开启zookeeper-server
bin/kafka-server-start.sh config/server.properties &
//开启kafka-server
可能出现以下错误/opt/kafka_2.11-2.0.0/bin/kafka-run-class.sh: line 306: exec: java not found
解决方案 yum install java(原因为Linux缺少java)
都输入Y
5:测试
每个生产者或消费者单独使用一个线程进行测试
生产:
bin/kafka-console-producer.sh --broker-list 192.168.11.171:9092 --topic test
消费:bin/kafka-console-consumer.sh --bootstrap-server 192.168.11.164:9092 --topic test --from-beginning
一个生产者推送的一条消息可以被多个消费者读取到,但每个消费者对每条消息只会读取一次
消费者的--from--benginning参数会读取该主题从历史到现在的所有消息,否则只读取消费者订阅之后推送的消息
6:总结:kafka服务必须获取的参数有ip,端口,主题
Windows
- 安装 jdk8.0
- 配置jdk环境变量
Path C:\Program Files\Java\jdk1.8.0_291\bin
JAVA_HOME C:\Program Files\Java\jdk1.8.0_291
- 安装zookeeper
kafka依赖Zookeeper,在安装kafka之前,需要安装、运行Zookeeper
解压文件
解压到 E:\zookeeper\zookeeper-3.7.0
在文件E:\zookeeper\zookeeper-3.7.0内,新增两个文件夹,分别命名为
dataDir和dataLogDir
进入 E:\zookeeper\zookeeper-3.7.0\conf 文件内,复制zoo_sample.cfg文件,并将新复制的文件命名为zoo.cfg,修改文件zoo.cfg内容
dataDir=E:\zookeeper\zookeeper-3.7.1\dataDir
dataLogDir=E:\zookeeper\zookeeper-3.7.1\dataLogDir
- 添加环境变量
ZOOKEEPER_HOME: E:\zookeeper\zookeeper-3.7.0
Path:在现有的值后面添加 %ZOOKEEPER_HOME%\bin
- Win + r cmd 输入zkserver
- 安装kafka2.13-2.8.0
下载kafka地址:Apache Kafka
解压到 E:\kafka\kafka_2.13-2.8.0
进入E:\kafka\kafka_2.13-2.8.0\config文件内,修改文件server.properties
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.11.175:9092
log.dirs=E:\kafka\kafka_2.13-2.8.0\logs
- (win+R,输入cmd,进入),进入E:\kafka\kafka_2.13-2.8.0
输入并执行以下命令打开kafka:
.\bin\windows\kafka-server-start.bat .\config\server.properties
- 创建topic
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
kafka-topics.bat --describe --zookeeper localhost:2181 --topic test(查看是否创建成功)
- 打开consumer
- 打开producer
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test
kafka-console-producer.bat --broker-list localhost:9092 --topic test
windows环境下搭建kafka_kafka windows_一二三向前进的博客-CSDN博客
错误:
- kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING”
1、尝试将kafka配置server.properties文件zookeeper.connection.timeout.ms超时时间设置调大
2、kafka配置文件server.properties中的配置zookeeper.connect的zookeeper服务地址是否一致
3、也有可能是防火墙没有关闭,使
4、kafka中libs目录下的zookeeper版本是否一致?
5、查看/etc/hosts中有无其它绑定地址
其他错误:
查看2181,9092端口是否被占用,强制关闭占用的进程