前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何通过CM升级Kafka0.11及Spark2.2

如何通过CM升级Kafka0.11及Spark2.2

作者头像
Fayson
修改2018-04-01 19:41:55
1.8K0
修改2018-04-01 19:41:55
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


在前面的文章《CDH5.13和CM5.13的新功能》中Fayson介绍过Cloudera发布CDH5.13时,同时也发布了Kafka3.0版本(即社区0.11版),目前社区最新版本为1.0。由于Kafka3.0和Spark2.2需要JDK8的支持,所以在升级Kafka3.0和Spark2.2版本时必须先升级JDK版本,可以参考《如何将CDH集群JAVA升级至JDK8》和《如何将Kerberos环境下CDH集群JAVA升级至JDK8》,本文Fayson主要介绍在CDH集群中如何升级Kakfa3.0和Spark2.2。

  • 内容概述

1.部署Kafka和Spark的Parcel包

2.CM配置Kafka和Spark的Parcel

3.Kafka和Spark升级

4.功能测试

  • 测试环境

1.CM和CDH版本为5.11.2

2.采用sudo权限的ec2-user用户操作

3.RedHat7.2

  • 前置条件

1.CM和CDH5.3和更高版本

2.JDK8或以上版本

3.集群已启用Kerberos

2.部署Kafka和Spark的Parcel包


1.在Cloudera官网下载Kafka和Spark的Parcel包

Kafka下载地址

http://archive.cloudera.com/kafka/parcels/3.0/KAFKA-3.0.0-1.3.0.0.p0.40-el7.parcel
http://archive.cloudera.com/kafka/parcels/3.0/KAFKA-3.0.0-1.3.0.0.p0.40-el7.parcel.sha1
http://archive.cloudera.com/kafka/parcels/3.0/manifest.json

Spark下载地址

http://archive.cloudera.com/spark2/parcels/2.2/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel
http://archive.cloudera.com/spark2/parcels/2.2/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel.sha1
http://archive.cloudera.com/spark2/parcels/2.2/manifest.json

2.创建Kafka和Spark的部署目录,并下载parcle包到相应目录

[ec2-user@ip-172-31-22-86 ~] sudo mkdir -p /var/www/html/kafka3.0
[ec2-user@ip-172-31-22-86 ~] sudo mkdir -p /var/www/html/spark2.2

Kafka3.0目录

Spark2.2目录

3.测试Kafka和Spark的Parcel是否部署成功

Kafka访问:

Spark访问:

3.CM中配置Kafka和Spark的Parcel库


1.登录CM,进入Parcel配置界面

2.点击“配置”

3.增加Kafka和Spark的Parcel库配置

这里Fayson使用的是AWS内网地址。

4.点击“保存更改”,查看配置成功。此时如果能看到Kafka3.0为可以“下载”状态,已有的Kafka2.2为可以“停用”状态,则表示配置Parcel库成功。注意此时Kafka2.2依旧为使用状态。

4.Kafka3.0升级


1.下载、分配并激活Kafka3.0的Parcel包

2.回到CM主页,重新部署Kafka客户端并重启Kafka集群

3.重启过期服务

4.重启

5.重启成功,完成Kafka3.0版本升级

5.Spark2.2升级


1.更新Spark2的CSD文件

CSD文件下载地址

http://archive.cloudera.com/spark2/csd/SPARK2_ON_YARN-2.2.0.cloudera1.jar

将下载的文件替换掉/opt/cloudera/csd目录下spark2其它版本的jar

2.重启cloudera-scm-server服务

[ec2-user@ip-172-31-22-86 csd]$ sudo systemctl restart cloudera-scm-server

3.点击“下载”Spark2.2.0的Parcel

4.点击“分配”

5.点击“激活”

回到主页根据提示重启服务,完成Spark2的升级

6.验证Spark2版本是否为我们升级后的版本

有如上截图显示则表示升级成功。

6.测试Spark2和Kafka3.0


  • Kafka测试

由于集群已启用Kerberos,所以在测试Spark的时候需要加载KAFKA_OPTS的环境变量,具体可以参考Fayson前面的文章《如何通过Cloudera Manager为Kafka启用Kerberos及使用》

1.创建一个mytopic的topic

kafka-topics --create --zookeeper ip-172-31-21-45.ap-southeast-1.compute.internal:2181 --replication-factor 3 --partitions 1 --topic mytopic

2.向mytopic生产消息

[ec2-user@ip-172-31-21-45 ~]$ export KAFKA_OPTS="-Djava.security.auth.login.config=/home/ec2-user/jaas-keytab.conf"
[ec2-user@ip-172-31-21-45 ~]$ kafka-console-producer --broker-list ip-172-31-26-80.ap-southeast-1.compute.internal:9092,ip-172-31-21-45.ap-southeast-1.compute.internal:9092,ip-172-31-26-102.ap-southeast-1.compute.internal:9092 --topic mytopic --producer.config client.properties

3.消费mytopic消息

[root@ip-172-31-21-45 ec2-user]# export KAFKA_OPTS="-Djava.security.auth.login.config=/home/ec2-user/jaas-keytab.conf"
[root@ip-172-31-21-45 ec2-user]# kafka-console-consumer --topic mytopic --from-beginning --bootstrap-server ip-172-31-26-80.ap-southeast-1.compute.internal:9092,ip-172-31-21-45.ap-southeast-1.compute.internal:9092,ip-172-31-26-102.ap-southeast-1.compute.internal:9092 --consumer.config client.properties
  • Spark2测试
[ec2-user@ip-172-31-22-86 jars]$ spark2-submit --class org.apache.spark.examples.SparkPi    --master yarn-client --num-executors 4 --driver-memory 1g    --driver-cores 1 --executor-memory 1g --executor-cores 1    /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.2.0.cloudera1.jar 10

运行成功

7.常见问题


1.在完成Spark2.2的升级后,在命令行运行spark2-shell命令报错

[ec2-user@ip-172-31-22-86 csd]$ spark2-shell
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/spark/launcher/Main : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

解决方法:在Spark2的配置页面配置JAVA环境变量为JDK8

保存配置并重新部署客户端,问题解决。

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档