安装好cdh后在cloudera-manager管理界面上并没有kafka服务,在CDH官网中关于Kafka的安装和升级中已经说到,在CDH中,Kafka作为一个分布式的parcel,单独出来作为parcel分发安装包。只要我们把分离开的kafka的服务描述jar包和服务parcel包下载了,就可以实现完美集成了。
(一)查看版本对应
访问网址https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka查看cdh与kafka版本的对应关系,如下图所示:

本次cdh使用的是5.15.1所以选择kafka3.1
(二)下载kafka包
访问下载地址:http://archive.cloudera.com/kafka/parcels/latest/,下载如下图所示红框中的文件:

(三)修改文件
1)重命名KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha1为KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha
2)将manifest.json文件中parcelName为KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel的hash值拷贝到KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha中,如果KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha中的值和manifest.json文件中的hash一致则省略该步。

(四)拷贝文件
将KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha、KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel和manifest.json文件拷贝到/opt/cloudera/parcel-repo路径下,如果该路径下已经存在manifest.json文件则将其重命名,如下图所示:

(五)配置Kafka-1.2.0.jar
访问下载地址:http://archive.cloudera.com/csds/kafka/,下载Kafka-1.2.0.jar,如下图所示:

将Kafka-1.2.0.jar文件拷贝到路径/opt/cloudera/csd,如下图所示:

(六)添加kafka服务
添加kafka会出现如下图所示,需要先安装kafka包,

点击install the parcel first,检查更新parcel,分配,激活。

如下图所示则说明成功:

(七)kafka集群验证
启动kafka服务之后,执行命令:kafka-topics --create --topic test --zookeeper node3:2181 --partitions 2 --replication-factor 2创建名为test的topic,执行命令:
kafka-topics --list --zookeeper node3:2181查看已创建topic信息,如下图所示:

在不同机器上分别执行如下命令,启动生产者和消费者,进行消息的生产和消费:
kafka-console-producer --topic test --broker-list node3:9092 (生产者)
kafka-console-consumer --zookeeper node3:2181 --topic test (消费者)
启动生产者和消费者之后模拟消息的生产和消费,如下图所示:

今天的分享就到这,有看不明白的地方一定是我写的不够清楚,所有欢迎提任何问题以及改善方法。
网友评论