CDH中如何升级Spark
公司平时使用的CDH版本的hadoop生态,spark任务是基于yarn来管理的,而不是基于原生的spark master slave集群管理。
因此任务的大致启动模式是:
如果是Cluster模式:
- A节点启动Spark-submit,这个程序即为client,client连接Resource Manager
- Resource Manager指定一个Node Manager创建AppMaster,这个AppMaster就是Driver
- AppMaster向Resource Manager申请资源创建Spark的Excutor
- Excutor向Driver(AppMaster)报告程序结果
如果是Client模式:
- A节点启动Spark-submit,这个程序就是client,此时直接创建Driver。
- 连接Resource Manager创建AppMaster
- Driver向AppMaster申请创建Excutor,AppMaster再跟Resource Manager申请资源创建Excutor
- 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的更多相关文章
- 关于CDH中开发Spark
文章发自http://www.cnblogs.com/hark0623/p/4167363.html 转发请注明 注意:基于CDH进行Spark开发时,使用高版本的apache原生包即可:不需要使用C ...
- CentOS7安装CDH 第十章:CDH中安装Spark2
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑
目录 前言 若干坑 总结 一.前言 近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...
- cdh环境下,spark streaming与flume的集成问题总结
文章发自:http://www.cnblogs.com/hark0623/p/4170156.html 转发请注明 如何做集成,其实特别简单,网上其实就是教程. http://blog.csdn.n ...
- Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN
Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- 某人在企业中遇到的Spark问题记录[持续更新]
https://github.com/ssg-7max/ssg 目前 ssg内公司内部 spark streaming 处理数据源是kafka 目前遇到最大的问题是,会延迟,例如我们配置1分钟让窗口计 ...
- CentOS7安装CDH 第九章:CDH中安装Kafka
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
随机推荐
- 【NIFI】 Apache NiFI 与 SQL 操作
本里需要基础知识:[NIFI] Apache NiFI 安装及简单的使用 查询SQL 1.拖入一个 Processor:ExecuteSQLRecord(执行sql记录) 2.配置,SETTINGS的 ...
- java笔记--问题总结
1. 垃圾回收算法 标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和 ...
- 如何将字符串转化为Jsoup的Document 对象
有些时候在java操作解析html元素的时候比较繁琐,今天螃蟹就介绍一种可将html转换为document对象的方法——jsoup jsoup为我们解析html提供了比较全的API接口,我们通过将ht ...
- C# 中使用面向切面编程(AOP)中实践代码整洁(转)
出处:https://www.cnblogs.com/chenug/p/9848852.html 1. 前言 最近在看<架构整洁之道>一书,书中反复提到了面向对象编程的 SOLID 原则( ...
- 下载安装mysql的一些坑
在mysql下载安装的过程中会有一些坑,另外navicat连接mysql数据库时也存在一定的坑,总结如下: 1.计算机中丢失某个dll文件 这个问题好解决,下载个文件就搞定了,下载地址:https:/ ...
- GDI基础(2):绘制文本
1.TextOut()和DrawText()函数 CDC::TextOut()在窗口的指定位置处输出文本,函数声明: virtual BOOL TextOut(int x, int y, LPCTST ...
- illustrator画梯形
1.在空白文档上先绘制出一个长方形: 2.用鼠标点击工具箱中”自由变换“工具: 3.用鼠标指向长方形四个顶点中的任意一个,当鼠标的箭头变为相反反方向的双箭头时,再按住鼠标左键不要松手, 同时按住[sh ...
- vue的饿了么写作感受
1.在重复使用的组件中,要把重复使用组件的需要在数据的请求的地方设置为在富组件中,通过props船只到子组件,这样在重复调用次组件的时候既可以很好的避免组件的值的冲突 2.getData的使用,把所有 ...
- ng-show和ng-if的区别和使用场景
一.ng-show(ng-hide)和ng-if都是控制标签的显示和隐藏,为什么angularjs会定义两个指令来供我们使用呢,不多多说肯定有各自的使用场景,接下来我们看哈实际原理: ng-show实 ...
- C++标准库addressof的应用
C++11将addressof作为标准库的一部分,用于取变量和函数等内存地址. 代码示例: #include <memory> #include <stdio.h> void ...