安装说明

安装环境

虚拟机: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安装与配置.


开始安装

  1. 我的两个基础软件Hadoop、Java 分别是在 /usr/hadoop 和 /usr/java下
  2. 其他的都安装在 ~/Hadoop 的文件夹下
  3. Kafka 不仅需安装在hadoop-master下,还需部署在slave机上

安装并配置Kafka

解压

1
2
3
4
5
6
$ cd ~/下载
$ cp kafka_2.13-2.8.0.tgz ~/Hadoop
$ cd ~/Hadoop
$ tar -zxvf kafka_2.13-2.8.0.tgz
$ cd kafka_2.13-2.8.0/conf


配置

server.properties

1
2
3
4
5
6
// 将此处的注释去掉
listeners=PLAINTEXT://hadoop-master:9092

// Zookeeper中的设置改为:
zookeeper.connect=hadoop-master:2181,hadoop-slave1:2181,hadoop-slave2:2181

本机测试

// 建议将master和slave都先开启zookeeper
此时,您可以在master主机上,稍微试试水…

1
2
3
$ ~/Hadoop/kafka_2.13-2.8.0/bin
$ ./kafka-server-start.sh ../config/server.properties &

打印完一堆东西后,回车输入 $ jps 将会看到
![成功启动](https://img-blog.csdnimg.cn/6b69477247b54134b6a553b586a86572.png

这样,你的master机基本上就配置好了!
我们先将其停掉 $ ./kafka-server-stop.sh ,继续往后配置!


将Kafka安装文件复制到Slave节点

1
2
3
4
$ cd ~/Hadoop
$ scp -r kafka_2.13-2.8.0/ hadoop-slave1:~/Hadoop/
$ scp -r kafka_2.13-2.8.0/ hadoop-slave2:~/Hadoop/

更改 slave 机上的 broker.id 值

注:hadoop-master 中的 broker.id 默认应该为 0

进入到 hadoop-slave1: ~/Hadoop/kafka_2.13-2.8.0/configserver.properties 更改以下内容:

1
broker.id=1 

进入到 hadoop-slave2: ~/Hadoop/kafka_2.13-2.8.0/configserver.properties 更改以下内容:

1
broker.id=2 

启动Kafka

在各个机器上执行该命令,都应该能执行成功哦~ (不行的往下看 其他 部分)

1
2
3
$ ~/Hadoop/kafka_2.13-2.8.0/bin
$ ./kafka-server-start.sh ../config/server.properties &

成功启动后,都应该能看到 Kafka
在这里插入图片描述


在 Master 上

1
2
3
4
5
6
7
8
9
// 创建一个topic
$ ./kafka-topics.sh --create -zookeeper hadoop-master:2181 -replication-factor 1 -partitions 1 -topic test

// 查看刚刚创建的topic
$ ./kafka-topics.sh --list --zookeeper hadoop-master:2181

// 开启生产者,发送消息
$ ./kafka-console-producer.sh --broker-list hadoop-master:9092 --topic test

在 Slave 上

1
2
3
// 开启消费者,接收消息
$ ./kafka-console-producer.sh --broker-list hadoop-master:9092 --topic test

回到 Master 上,输入 ‘Hello World’ 见证历史吧!
在这里插入图片描述



其他

启动时 zookeeper 报错

出现了这一堆的报错时…(我是在slave上发现这个问题)
在这里插入图片描述
是你Kafka运行的 zookeeper 版本不一样所导致的
首先看看最上面的打印的版本是什么
在这里插入图片描述
再看看master上正常启动时的版本
master正常启动
再对比 ~/Hadoop/kafka_2.13-2.8.0/libs 下 zookeeper 的 jar 包的版本
然后根据下面 path 把不能启动的机器下的 不同版本的 zookeeper的jar包 删掉即可
嗯…没错…就是这样…(我就是把它复制出来,匹配zookeeper一个个看…)
path
我的话…在 $HADOOP_HOME/share/hadoop/common/lib下有一个
$HADOOP_HOME/share/hadoop/yarn/lib下也有一个
我的 slave 是把这两个删掉就可以正常启动了


启动时 Cluster ID 报错

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的安装和配置