spark standalone模式作业迁移到spark on yarn
来源:互联网 发布:恢复中国国籍 知乎 编辑:程序博客网 时间:2024/05/17 04:48
本文主要介绍spark standalone模式的作业迁移到spark on yarn上的一些操作。
1、代码重新编译
因为之前spark standalone项目使用的是spark 1.5.2版本,而现在的spark on yarn 使用的是spark 2.0.1,所以先需要对原来代码重新编译,建议使用maven构建项目,根据需要使用下面提供的pom.xml文件即可自动下载当前部署版本所需的jar包。
<dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.8</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-reflect</artifactId> <version>2.11.8</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-flume_2.11</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_2.11</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-kafka-0-8_2.11</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.scalikejdbc</groupId> <artifactId>scalikejdbc_2.11</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_2.11</artifactId> <version>2.0.1</version> </dependency></dependencies>
2、参数变化
因为spark standalone与spark on yarn的资源管理机制不同,所以有一些参数需要调整才能在spark on yarn运行,这里只介绍需要修改的部分,没涉及到的参数则不需要变动。
- master
这里修改成yarn,此外–deploy-mode参数可以是client和cluster,这里的区别是client模式的driver在submit任务的机器上,作业运行日志直接从当前客户端打印,方便作业调试;而cluster模式是把driver随机分配到某一台机器,适用于作业调试后稳定运行。
- executor
废弃standalone模式中的–total-executor-cores,而改用–num-executors
3、任务执行目录
spark2.0.1客户端在hadoop001的/opt/spark2,为了平滑迁移,原来spark1.5.2的客户端路径不变,建议大家把新需求提在yarn上面。
4、作业历史记录查询
spark的job historyserver部署在hadoop003,故历史记录查看地址是hadoop003.dx.momo.com:18080
这里以同一个任务在standalone和spark on yarn的执行脚本作为示范,以示区别:
- standalone模式
bin/spark-submit –class spark.mllib.als -master spark://spark002.dx.momo.com:6066 –deploy-mode cluster –executor-memory 4g –total-executor-cores 200 –queue data
- spark on yarn 模式
bin/spark-submit –class spark.mllib.als -master yarn –deploy-mode cluster –executor-memory 4g –num-executors 200 –queue data
5、下面提供提几个简单的spark on yarn使用接口,方便大家学习和使用spark:
- spark-shell 作业调试中最常用的方法,方便代码调试及调优
bin/spark-shell –master yarn –deploy-mode client –executor-memory 2G –num-executors 20 –executor-cores 1 –queue data - spark-sql 调试sql语句常用
bin/spark-sql –master yarn –deploy-mode client –executor-memory 2G –num-executors 20 –executor-cores 1 –queue data
6、作业迁移过程中可能的报错
- Container killed by YARN for exceeding memory limits. 3.0 GB of 3 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead
分析: 因为spark on yarn会有yarn来检测spark container的资源使用情况(standalone没有),所以作业迁移过来很可能出现该报错,解决方法就是直接加大spark.yarn.executor.memoryOverhead或者executor memory(spark.yarn.executor.memoryOverhead默认为executor memory大小的的10%),可以在作业提交脚本中使用 –conf spark.yarn.executor.memoryOverhead=* (如1024)或提高 –executor-memory 来保证作业在新环境下运行。
以上是迁移的指南,供大家顺利迁移作业,后续会继续整理作业调试及调优方面的分享.
0 0
- spark standalone模式作业迁移到spark on yarn
- spark standalone&&yarn模式
- Spark Streaming On Yarn/ On StandAlone模式下的checkpointing容错
- Spark on YARN集群模式作业运行全过程分析
- Spark on YARN客户端模式作业运行全过程分析
- Spark on YARN集群模式作业运行全过程分析
- Spark on YARN客户端模式作业运行全过程分析
- Spark on YARN client模式作业运行全过程分析
- Spark on YARN cluster & client 模式作业运行全过程分析
- Spark1.0.x入门指南(spark on yarn, standalone)
- spark 1.X standalone和on yarn安装配置
- spark on yarn作业执行流程
- spark-on-yarn作业提交缓慢优化
- 安装Spark Standalone模式/Hadoop yarn模式并运行Wordcount
- Spark On Yarn:提交Spark应用程序到Yarn
- Spark On Yarn:提交Spark应用程序到Yarn
- Spark的三种分布式部署模式:Standalone, Mesos,Yarn
- spark standalone模式配置
- SDNU——1043.采药2(动态规划——完全背包)
- mysql 登录时报 ”1045 (28000):..." 错误解决办法
- 卷积神经网络
- laravel通过supervisor管理beanstalkd任务队列
- 关于 stm32 硬件iic
- spark standalone模式作业迁移到spark on yarn
- 冒泡排序和选择排序的自我见解
- ffmpeg解码H264缺少帧的解决办法
- 模拟火车票销售系统--线程同步+安全问题(初期 1)
- UVA-1339 Ancient Cipher
- Extjs4 ——布局和容器
- 更改Vim配色
- AJAX跨域浏览-CORS
- Linux之pinctrl subsystem