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中的问题和解决方法 ...
随机推荐
- SLI的相关学习
今天帮人安装前年的机皇-微星GT80S的操作系统,安装好后用鲁大师测试下跑分,发现双显卡和单显卡鲁大师的跑分竟然一样,就像副显卡根本没有工作,听主人所这台机器能跑到36万以上. 然后就苦逼的尝试,把B ...
- php 制作验证码不显示的问题
php制作验证码的代码,这里就不多说了,网上有很多的,这里说一些可能遇到的问题. 1. 首先是检查自己的php.ini文件,是否支持gd库. 2.保证代码没有出问题. 3.检查字体文件路径是否正确. ...
- Codeforces 1107 简要题解
文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 A题 传送门 题意简述:问你能不能把一个数字串切成若干块,使得切出来的kkk个数k≤2k\le2k≤2满足a1<a2<...&l ...
- ODT(old driver tree)详解(带例题)
文章目录 ODT简介 实现前提&&实现原理 初始化 split操作 assign操作 其它操作 区间第k小 区间加 区间所有数的k次方和 几道水题 ODT简介 ODT(old driv ...
- 使用bat批处理文件定时自动备份sqlserver数据库
一.创建一个sql文件,在里面写入以下代码: USE MasterGOdeclare @str varchar(100)set @str='D:\sqlserver14backup\CDB\'+rep ...
- hadoop配置分区
1.运行MR,得出HDFS路径下数据 2.创建 Hive 表 映射 HDFS下的数据 3.为数据创建分区,在hive下执行 source 分区表: TIPS:结果集的时间,必须在分区范围内: 可以理解 ...
- java学习路线图(2018年最新版)
最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从 ...
- 实现两个sym转一个sym
CVO输出如果是一个像素并行输出,选择内嵌人插入同步码.如果两个像素并行输出是不能选择内嵌的,只能选择分离的方式.如果把输出的并行数据给VIP并且要求是内嵌,那只能在内部转或者外部转. 这里是实现外部 ...
- docker 搭建 MYSQL并且完成主从复制
mysql主从复制逻辑: 1.从库执行start slave 开启主从复制. 2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求. 3.主库收到从库请求后,将信息返回给从库,除了信息日 ...
- c++ cout、<< 、cin、>> 、endl 详解
std::cout是在#include<iostream>库中的ostream类型中的对象 std::表示命名空间,标准库定义的所有名字都在命名空间std中 std::cout是在#inc ...