您的位置:首页 > Web前端 > HTML5

CDH5.11添加kafka服务及其初始启动OutOfMemoryError失败解决

2017-10-27 16:29 399 查看
简介:

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/



②kafka parcel包:

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



二。开始安装

1.上传kafka。

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

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



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



2.分配,激活

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



如果成功,则会看到你的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$CleanerThr
ecf8
ead.<init>(LogCleaner.scala:186) at kafka.log.LogCleaner

anonfun$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,这下终于好了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: