公司平时使用的CDH版本的hadoop生态,spark任务是基于yarn来管理的,而不是基于原生的spark master slave集群管理。

因此任务的大致启动模式是:

如果是Cluster模式:

  1. A节点启动Spark-submit,这个程序即为client,client连接Resource Manager
  2. Resource Manager指定一个Node Manager创建AppMaster,这个AppMaster就是Driver
  3. AppMaster向Resource Manager申请资源创建Spark的Excutor
  4. Excutor向Driver(AppMaster)报告程序结果

如果是Client模式:

  1. A节点启动Spark-submit,这个程序就是client,此时直接创建Driver。
  2. 连接Resource Manager创建AppMaster
  3. Driver向AppMaster申请创建Excutor,AppMaster再跟Resource Manager申请资源创建Excutor
  4. Excutor向Driver(Client)报告程序结果

那么这种环境下如何升级Spark呢?

通过上面的过程分析,可以知道,Spark版本存在两个地方:一个是A节点提交Spark-submit的程序必须是2.3.0版本的;另一个是Yarn使用的lib必须是2.3.0版本的。

虽然暂时还屡不清楚来龙去脉,但是跟着过一遍吧!

第一步,在A节点下载spark2.3的jar

[xxx@hnode10 app]$ ls -l
total 628168
drwxrwxr-x 6 hdfs hdfs 4096 Jan 9 10:35 akita
-rw-r--r-- 1 hdfs hdfs 18573432 Jan 9 10:34 akita-release.tar.gz
lrwxrwxrwx 1 hdfs hdfs 46 Jan 2 09:37 canal -> /var/lib/hadoop-hdfs/app/canal.deployer-1.0.25
drwxrwxr-x 6 hdfs hdfs 4096 Jan 2 09:36 canal.deployer-1.0.25
drwxrwxr-x 4 hdfs hdfs 4096 May 31 09:11 hadoop
lrwxrwxrwx 1 root root 50 Jun 5 12:34 spark -> /var/lib/hadoop-hdfs/app/spark-2.2.0-bin-hadoop2.6
drwxr-xr-x 14 hdfs hdfs 4096 Nov 9 2017 spark-2.1.1-bin-hadoop2.6
-rw-r--r-- 1 hdfs hdfs 198804211 Oct 23 2017 spark-2.1.1-bin-hadoop2.6.tgz
drwxr-xr-x 13 hdfs hdfs 4096 Jun 5 12:33 spark-2.2.0-bin-hadoop2.6
-rw-rw-r-- 1 hdfs hdfs 201706782 Jul 11 2017 spark-2.2.0-bin-hadoop2.6.tgz
drwxr-xr-x 13 hdfs hdfs 4096 Feb 23 03:46 spark-2.3.0-bin-hadoop2.6
-rw-rw-r-- 1 hdfs hdfs 224121109 Feb 23 03:54 spark-2.3.0-bin-hadoop2.6.tgz
lrwxrwxrwx 1 root root 25 Jun 6 09:04 spark23 -> spark-2.3.0-bin-hadoop2.6

第二步,修改配置文件和启动脚本

解压后,创建一个新的软连接 spark23到对应的目录:

ln -s /var/lib/hadoop-hdfs/app/spark-2.3.0-bin-hadoop2.6 spark23

然后配置对应的启动脚本:

[xxx@hnode10 bin]$ ls -l
total 9588
-rwxr-xr-x 1 hdfs hdfs 2991 Oct 23 2017 spark2-shell
-rwxr-xr-x 1 hdfs hdfs 1013 Oct 23 2017 spark2-submit
-rwxr-xr-x 1 root root 2993 Jun 6 17:39 spark23-shell
-rwxr-xr-x 1 root root 1015 Jun 6 17:41 spark23-submit

在spark23-submit中修改SPARK_HOME

export SPARK2_HOME=/var/lib/hadoop-hdfs/app/spark23
exec "${SPARK2_HOME}"/bin/spark-class org.apache.spark.deploy.SparkSubmit "$@"

在spark23-shell中修改SPARK_HOME

cygwin=false
case "$(uname)" in
CYGWIN*) cygwin=true;;
esac # Enter posix mode for bash
set -o posix export SPARK2_HOME=/var/lib/hadoop-hdfs/app/spark23
....

修改Spark2.3中的配置文件spark-defaults.conf

spark.yarn.jars  hdfs://nameservice1/app/spark23/lib/*.jar
spark.history.fs.logDirectory hdfs://nameservice1/user/spark/applicationHistory

其中spark.yarn.jars指定了yarn使用的spark jar包目录。

第三步,在hdfs中上传yarn使用的lib

最后,找一个hello world启动下试试吧~

CDH中如何升级Spark的更多相关文章

  1. 关于CDH中开发Spark

    文章发自http://www.cnblogs.com/hark0623/p/4167363.html 转发请注明 注意:基于CDH进行Spark开发时,使用高版本的apache原生包即可:不需要使用C ...

  2. CentOS7安装CDH 第十章:CDH中安装Spark2

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  3. geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑

    目录 前言 若干坑 总结 一.前言        近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...

  4. cdh环境下,spark streaming与flume的集成问题总结

    文章发自:http://www.cnblogs.com/hark0623/p/4170156.html  转发请注明 如何做集成,其实特别简单,网上其实就是教程. http://blog.csdn.n ...

  5. Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN

    Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...

  6. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  7. 某人在企业中遇到的Spark问题记录[持续更新]

    https://github.com/ssg-7max/ssg 目前 ssg内公司内部 spark streaming 处理数据源是kafka 目前遇到最大的问题是,会延迟,例如我们配置1分钟让窗口计 ...

  8. CentOS7安装CDH 第九章:CDH中安装Kafka

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  9. CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

随机推荐

  1. centos上安装jdk

    今天在centos上安装jdk,总结步骤如下:1.先到oracle下载rpm包:jdk-7u80-linux-x64.rpm (下载地址在百度找找)2.把jdk-7u80-linux-x64.rpm上 ...

  2. Codeforces 1098 简要题解

    文章目录 前言 A题 B题 C题 D题 E题 传送门 前言 没错因为蒟蒻太菜了这场的最后一道题也咕掉了,只有AAA至EEE的题解233 A题 传送门 题意简述:给出一棵带点权的树,根节点深度为111, ...

  3. 2019.01.01洛谷 P4725/P4726 多项式对数/指数函数(牛顿迭代)

    4725传送门 4726传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; in ...

  4. 2018.11.06 bzoj1835: [ZJOI2010]base 基站选址(线段树优化dp)

    传送门 二分出每个点不需要付www贡献的范围,然后可以推出转移式子: f[i][j]=f[i−1][k]+value(k+1,j)+c[i]f[i][j]=f[i-1][k]+value(k+1,j) ...

  5. 2018.10.25 atcoder Leftmost Ball(计数dp+组合数学)

    传送门 dp妙题啊. 我认为DZYODZYODZYO已经说的很好了. 强制规定球的排序方式. 然后就变成了一个求拓扑序数量的问题. 代码: #include<bits/stdc++.h> ...

  6. tomcat7 安装 windows 服务

    tomcat 可以安装成windows 服务,这样 每次启动就不需要启动tomcat了. 具体配置: 1.修改 service.bat 在行首添加 set "JAVA_HOME=E:\jdk ...

  7. SVN安装配置与使用

    http://www.cnblogs.com/skyway/archive/2011/08/10/2133399.html http://www.cnblogs.com/lidabo/archive/ ...

  8. 利用JDK自带的keytool生成SSL证书然后导入到SpringBoot

    一:生成命令如下(这一步生成的暂不知道干嘛用的) E:\Desktop\Documents\证书>keytool -genkey -alias tomcat -keypass - -validi ...

  9. sql计算经纬度得出最近距离的公式

    sql计算经纬度得出最近距离的公式 //根据经纬度计算两点距离 mappoint //数据库已有字段,商家经纬度 实例:113.272148,23.147299 $lon = "" ...

  10. ArcGIS API for Silverlight部署本地地图服务

    这一节我们来讲新建立的ArcGIS API for Silverlight应用程序如何加载自己的地图服务的问题,网上的资料讲的都有点含糊不清,这次我们详细的讲一下配置的步骤: 首先介绍下我们的开发和部 ...