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