大型数据库(8)--- Kafka安装与配置
安装说明
安装环境
虚拟机:VirtualBox-6.1.18
操作系统:Ubuntu16.04LTS
集群情况:
主机名称 | hadoop版本 | ZooKeeper版本 | IP地址 |
---|---|---|---|
hadoop-master | 2.7.3 | 3.6.3 | 192.168.56.1 |
hadoop-slave1 | 2.7.3 | 3.6.3 | 192.168.56.2 |
hadoop-slave2 | 2.7.3 | 3.6.3 | 192.168.56.3 |
本次安装的Kafka
Kafka版本:2.13-2.8.0
下载地址:kafka_2.13-2.8.1.tgz
其他:Kafka官网 、查看不同版本、官方文档
都准备就绪后,我们就接着往下开始安装吧!
不知道怎么准备的,我之前的文章 也许可以给你带来一些参考哦 - - - ☞ 搭建hadoop集群
大型数据库(6)— ZooKeeper安装与配置.
开始安装
- 我的两个基础软件Hadoop、Java 分别是在 /usr/hadoop 和 /usr/java下
- 其他的都安装在 ~/Hadoop 的文件夹下
- Kafka 不仅需安装在hadoop-master下,还需部署在slave机上
安装并配置Kafka
解压
1 | cd ~/下载 |
配置
server.properties
1 | // 将此处的注释去掉 |
本机测试
// 建议将master和slave都先开启zookeeper
此时,您可以在master主机上,稍微试试水…
1 | ~/Hadoop/kafka_2.13-2.8.0/bin |
打印完一堆东西后,回车输入
$ jps
将会看到
这样,你的master机基本上就配置好了!
我们先将其停掉 $ ./kafka-server-stop.sh
,继续往后配置!
将Kafka安装文件复制到Slave节点
1 | cd ~/Hadoop |
更改 slave 机上的 broker.id 值
注:hadoop-master 中的 broker.id 默认应该为 0
进入到 hadoop-slave1: ~/Hadoop/kafka_2.13-2.8.0/config
将 server.properties 更改以下内容:
1 | broker.id=1 |
进入到 hadoop-slave2: ~/Hadoop/kafka_2.13-2.8.0/config
将 server.properties 更改以下内容:
1 | broker.id=2 |
启动Kafka
在各个机器上执行该命令,都应该能执行成功哦~ (不行的往下看 其他 部分)
1 | ~/Hadoop/kafka_2.13-2.8.0/bin |
成功启动后,都应该能看到 Kafka
在 Master 上
1 | // 创建一个topic |
在 Slave 上
1 | // 开启消费者,接收消息 |
回到 Master 上,输入 ‘Hello World’ 见证历史吧!
其他
启动时 zookeeper 报错
出现了这一堆的报错时…(我是在slave上发现这个问题)
是你Kafka运行的 zookeeper 版本不一样所导致的
首先看看最上面的打印的版本是什么
再看看master上正常启动时的版本
再对比 ~/Hadoop/kafka_2.13-2.8.0/libs
下 zookeeper 的 jar 包的版本
然后根据下面 path 把不能启动的机器下的 不同版本的 zookeeper的jar包 删掉即可
嗯…没错…就是这样…(我就是把它复制出来,匹配zookeeper一个个看…)
我的话…在 $HADOOP_HOME/share/hadoop/common/lib
下有一个
在 $HADOOP_HOME/share/hadoop/yarn/lib
下也有一个
我的 slave 是把这两个删掉就可以正常启动了
启动时 Cluster ID 报错
这个只需要打开 $ /home/xld/test/kafka_2.13-2.8.0/config/server.properties
查看 log.dirs
将该路径下的文件夹删除,然后重启即可…
如:log.dirs=/tmp/kafka-logs 直接将 /tmp 目录下的 kafka-logs 这个文件夹整个直接删掉即可
创建topic时失败
显示超时
很有可能是你 master 机的 zookeeper 还没启动哦~
把 zookeeper 启动后再试试就好了。
其他骚话…
他说的是2.8之后的版本去掉自带的zookeeper,但我这发现他还是依赖运行 kafka 下的 libs 下的 jar 包,就很迷…大概是我不会弄吧…
还有就是,我发现 slave 接收信息,不开启 kafka.server 也可以…只是会多出一个 ConsoleConsumer 的玩意…
没搞明白…糊里糊涂,半桶水…
参考文章:
Kafka安装配置
kafka的安装和配置