学习hadoop遇到的问题(添加kafka服务)

CDH的parcel包中是没有kafka的,kafka被剥离了出来,需要从新下载parcel包安装。或者在线安装,但是在线安装都很慢,这里使用下载parcel包离线安装的方式。

PS:kafka有很多版本,CDH也有很多版本,那也许你会疑问如何知道你的CDH应该安装什么kafka版本。这个官方有介绍,文档地址:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka   ,这里截图:

由于我的CDH是5.11,所以只支持kafka2.1.x的,所以我安装的就是这个版本

 

一。安装准备:

所需软件:

①kafka csd包,下载地址:http://archive.cloudera.com/csds/kafka/

学习hadoop遇到的问题(添加kafka服务)

 

由于我的CDH是5.11,所以只支持kafka2.1.x的,所以我安装的就是这个版本

 

一。安装准备:

所需软件:

①kafka csd包,下载地址:http://archive.cloudera.com/csds/kafka/学习hadoop遇到的问题(添加kafka服务)

 

②kafka parcel包:

 

地址:http://archive.cloudera.com/kafka/parcels/latest/,根据操作系统,下载对应的包

学习hadoop遇到的问题(添加kafka服务)

 

二。开始安装

1.上传kafka。

注意,以下操作,需要在你CDH的所有机器执行,不然待会检测不到。

 

①上传CSD包KAFKA-1.2.0.jar,到服务器CDH目录下,路径为/opt/cloudera/csd

 

学习hadoop遇到的问题(添加kafka服务)

 ②上传parcel包中的那3个文件,到目录/opt/cloudera/parcel-repo***意如果有文件重名,如manifest那个文件,把以前的重命名为其他名字

学习hadoop遇到的问题(添加kafka服务)

 

2.分配,**

进入CDH的管理界面,点击主机->parcel->检查新parcel

学习hadoop遇到的问题(添加kafka服务)

 如果成功,则会看到你的kafka一项,并且有分配按钮,点击分配,等待,然后分配按钮编程**按钮,点击**,等待,操作成功后如下

学习hadoop遇到的问题(添加kafka服务)

 

OK,kafka安装完成

 

三。善后工作

安装完成后,便可以在添加服务里,添加kafka服务了。这里如果遇到最后一步,启动kafka的时候,失败报错如下:

 

Fatal error during KafkaServerStartable startup. Prepare to shutdown java.lang.OutOfMemoryError: Java heap space at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57) at java.nio.ByteBuffer.allocate(ByteBuffer.java:335) at kafka.log.SkimpyOffsetMap.<init>(OffsetMap.scala:43) at kafka.log.LogCleaner$CleanerThread.<init>(LogCleaner.scala:186) at kafka.log.LogCleaner

anonfun$1.apply(LogCleaner.scala:83)atkafka.log.LogCleaneranonfun$1.apply(LogCleaner.scala:83)atkafka.log.LogCleaner

anonfun$1.apply(LogCleaner.scala:83)

 

这是因为 Java Heap Size配置小了(奇怪的是安装kafka的时候它也没提示我设置啊,简直怪了),这里如下解决:

 

回到CDH主页面,点击kafka,进入配置页面,修改 Java Heap Size of Broker为1G,如下:,然后保存,重启KAFKA,OK,这下终于好了

学习hadoop遇到的问题(添加kafka服务)