虚拟机: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.1 |
hadoop-slave2 | 2.7.3 | 3.6.3 | 192.168.56.1 |
Kafka版本:2.13-2.8.0
下载地址:kafka_2.13-2.8.1.tgz
其他:Kafka官网 、查看不同版本、官方文档
都准备就绪后,我们就接着往下开始安装吧!
不知道怎么准备的,我之前的文章 也许可以给你带来一些参考哦 - - - ☞ 搭建hadoop集群
大型数据库(6)— ZooKeeper安装与配置.
$ 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
// 将此处的注释去掉 listeners=PLAINTEXT://hadoop-master:9092 // Zookeeper中的设置改为: zookeeper.connect=hadoop-master:2181,hadoop-slave1:2181,hadoop-slave2:2181
// 建议将master和slave都先开启zookeeper
此时,您可以在master主机上,稍微试试水…
$ ~/Hadoop/kafka_2.13-2.8.0/bin $ ./kafka-server-start.sh ../config/server.properties &
打印完一堆东西后,回车输入
$ jps
将会看到
这样,你的master机基本上就配置好了!
我们先将其停掉 $ ./kafka-server-stop.sh
,继续往后配置!
$ cd ~/Hadoop $ scp -r kafka_2.13-2.8.0/ hadoop-slave1:~/Hadoop/ $ scp -r kafka_2.13-2.8.0/ hadoop-slave2:~/Hadoop/
注:hadoop-master 中的 broker.id 默认应该为 0
进入到 hadoop-slave1: ~/Hadoop/kafka_2.13-2.8.0/config
将 server.properties 更改以下内容:
broker.id=1
进入到 hadoop-slave2: ~/Hadoop/kafka_2.13-2.8.0/config
将 server.properties 更改以下内容:
broker.id=2
在各个机器上执行该命令,都应该能执行成功哦~ (不行的往下看 其他 部分)
$ ~/Hadoop/kafka_2.13-2.8.0/bin $ ./kafka-server-start.sh ../config/server.properties &
成功启动后,都应该能看到 Kafka
// 创建一个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
// 开启消费者,接收消息 $ ./kafka-console-producer.sh --broker-list hadoop-master:9092 --topic test
回到 Master 上,输入 ‘Hello World’ 见证历史吧!
出现了这一堆的报错时…(我是在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 是把这两个删掉就可以正常启动了
这个只需要打开 $ /home/xld/test/kafka_2.13-2.8.0/config/server.properties
查看 log.dirs
将该路径下的文件夹删除,然后重启即可…
如:log.dirs=/tmp/kafka-logs 直接将 /tmp 目录下的 kafka-logs 这个文件夹整个直接删掉即可
显示超时
很有可能是你 master 机的 zookeeper 还没启动哦~
把 zookeeper 启动后再试试就好了。
他说的是2.8之后的版本去掉自带的zookeeper,但我这发现他还是依赖运行 kafka 下的 libs 下的 jar 包,就很迷…大概是我不会弄吧…
还有就是,我发现 slave 接收信息,不开启 kafka.server 也可以…只是会多出一个 ConsoleConsumer 的玩意…
没搞明白…糊里糊涂,半桶水…
参考文章:
Kafka安装配置
kafka的安装和配置