1.文档编写目的
在前面的文章《如何通过CM升级Kafka0.11及Spark2.2》中Fayson介绍了升级Kafka的方式。本篇文章Fayson主要介绍在CDH中如何升级CDK3.1.0(即Kafka社区版1.0.1)以及验证Kafka功能。
1.部署CDK3.1.0的Parcel包
2.CM配置CDK的Parcel库地址
3.Kafka升级及功能测试
1.CM5.15.0和CDH版本为5.14.2
2.RedHat7.3
1.CM和CDH5.3和更高版本
2.JDK8或以上版本
2.升级环境及已有Topic描述
1.升级环境描述
升级前版本 | 待升级版本 |
---|---|
CDK3.0.0(社区版kafka0.10.2) | CDK3.1.0(社区版kafka1.0.1) |
2.升级前创建一个测试的Topic,并向topic中生产数据及消费
创建topic-upgrade Topic
kafka-topics --create --zookeeper cdh01.fayson.com:2181 --replication-factor 3 --partitions 4 --topic topic-upgrade
(可左右滑动)
3.向topic-upgrade中生产数据
4.使用kafka-console-consumer消费该Topic数据
kafka-console-consumer --topic topic-upgrade --from-beginning --bootstrap-server cdh01.fayson.com:9092,cdh02.fayson.com:9092,cdh03.fayson.com:9092,cdh04.fayson.com:9092
(可左右滑动)
在升级前Kafka可以正常创建Topic,向Topic生产数据及消费。
3.部署Kafka的Parcel包
1.在Cloudera官网下载Kafka的Parcel包
Kafka下载地址:
http://archive.cloudera.com/kafka/parcels/3.1.0/KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel
http://archive.cloudera.com/kafka/parcels/3.1.0/KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel.sha1
http://archive.cloudera.com/kafka/parcels/3.1.0/manifest.json
(可左右滑动)
2.在/var/www/html下创建cdk3.1.0的部署目录,并下载parcle包到该目录下
[root@cdh01 ~] sudo mkdir -p /var/www/html/cdk3.1.0
(可左右滑动)
cdk3.1.0目录
3.测试Kafka的Parcel是否部署成功
4.CM中配置Kafka的Parcel库
1.登录CM,进入Parcel配置界面
2.点击“配置”
3.配置Kafka的Parcel库地址
4.点击“保存更改”,查看配置成功。此时如果能看到Kafka3.0为可以“下载”状态,已有的Kafka2.2.0为可以“停用”状态,则表示配置Parcel库成功。注意此时Kafka2.2依旧为使用状态。
5.Kafka3.1.0升级
1.下载、分配并激活Kafka3.1.0的Parcel包
下载Parcel包
分配Parcel
2.激活Kafka3.1.0,点击“激活”时选择重启Kafka服务,如果未选择重启则需要在激活成功后重启Kafka服务
激活成功
以上操作就完成了Kafka3.1.0的升级
6.升级后验证
由于集群已启用Kerberos,所以在测试Spark的时候需要加载KAFKA_OPTS的环境变量,具体可以参考Fayson前面的文章《如何通过Cloudera Manager为Kafka启用Kerberos及使用》
1. 消费升级前创建的topic-upgrade
kafka-console-consumer --topic topic-upgrade --from-beginning --bootstrap-server cdh01.fayson.com:9092,cdh02.fayson.com:9092,cdh03.fayson.com:9092,cdh04.fayson.com:9092
(可左右滑动)
升级后可以正常消费Topic数据。
2.创建一个mytopic的topic
[root@cdh02 ~]# kafka-topics --create --zookeeper cdh01.fayson.com:2181 --replication-factor 3 --partitions 4 --topic mytopic
(可左右滑动)
mytopic创建成功。
3. 向mytopic生产消息
4.消费mytopic消息
kafka-console-consumer --topic topic-upgrade --from-beginning --bootstrap-server cdh01.fayson.com:9092,cdh02.fayson.com:9092,cdh03.fayson.com:9092,cdh04.fayson.com:9092
(可左右滑动)
mytopic消息消费成功。
7.总结
从CDK2.2.0(社区版0.10.2)升级至CDK3.1.0(社区版1.0.1)未出现Topic丢失或数据丢失问题。