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

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

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

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

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

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

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据之美

windows 安装 spark 及 pycharm 调试 TopN 实例

首先声明本文搭建的环境为:windows8.1 + spark1.6.0 + python2.7 + jdk8,spark on windows 对 windo...

59160
来自专栏分布式系统和大数据处理

使用.net通过odbc访问Hive

在 写入数据到Hive表(命令行) 这篇文章中,我们通过命令行的方式和hive进行了交互。但在通常情况下,是通过编程的方式来操作Hive,Hive提供了JDBC...

59040
来自专栏Hadoop实操

如何使用Hue创建Spark2的Oozie工作流(补充)

目前Oozie 的 SparkAction 仅支持Spark1.6, 而并不支持Spark2, 这是 CDH Spark2已知的局限性(https://www....

1.3K60
来自专栏Hadoop实操

如何使用Cloudera Manager启用HDFS的HA

在HDFS集群中NameNode存在单点故障(SPOF),对于只有一个NameNode的集群,如果NameNode机器出现意外,将导致整个集群无法使用。为了解决...

1.6K40
来自专栏Hadoop实操

如何在Kerberos的Linux上安装及配置Impala的ODBC驱动

Impala提供了多种访问方式如impala-shell、beeline、JDBC以及ODBC等方式,关于beeline、JDBC的连接方式可以参考Fayson...

52450
来自专栏数据科学与人工智能

【Spark研究】Spark之工作原理

基本概念 理解Spark的运行模式涉及一系列概念: (1)Cluster Manager:在集群上获取资源的外部服务。目前有三种类型:1. Standalone...

49350
来自专栏挖掘大数据

如何搭建Hadoop伪分布式集群?

如何搭建Hadoop伪分布式集群,本文将详细介绍。

30100
来自专栏Hadoop实操

如何使用Oozie API接口向Kerberos环境的CDH集群提交Spark作业

在CDH集群外的节点向集群提交Spark作业的方式有多种,前面Fayson介绍了Livy相关的文章主要描述如何在集群外节点通过RESTful API接口向CDH...

49970
来自专栏搜云库

大数据平台搭建 Hadoop-2.7.4 + Spark-2.2.0 快速搭建

Apache Spark 简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (...

66080
来自专栏Hadoop实操

CentOS6.5安装CDH5.13

Cloudera前一段时间发布了CDH5.13版本,5.13的新功能可以参考前一篇文章CDH5.13和CM5.13的新功能,本文章主要讲述如何在CentOS6....

1.6K80

扫码关注云+社区

领取腾讯云代金券