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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被鬼魂附体了该怎么办 被吸血蠓咬了怎么办 股份公司大股东占用资金怎么办 抱小孩抱的胳膊疼怎么办 一个月好几个性伴侣怎么办 惹了势力大的人怎么办 给佛像换新法器旧的怎么办 cad填充图案拾取不了点怎么办 cad填充图案太密怎么办 桃木葫芦挂件裂口了怎么办 皮肤被太阳晒伤变黑怎么办 皮肤又粗又黑该怎么办 盆栽红薯长疯了怎么办 四叶草叶子发黄怎么办 美篇不想让别人看到怎么办 黑魂3暗灵入侵怎么办 问道手游账号忘了怎么办 问道手游密码忘了怎么办 毒蚂蚁咬了红肿怎么办 电脑开机后有电流声怎么办 小学生阅读方面不会总结怎么办 天龙八部手游转职装备怎么办 投简历没回应该怎么办? 开车开的腰疼怎么办 开车腰疼怎么办吃什么 58简历投错了怎么办 开了一天车腰疼怎么办 开车腰疼怎么办怎么解决好 球球大作战找不到主界面怎么办 在QQ上找不到主界面怎么办 mac地址被过滤了怎么办 续贷声明含非法字符怎么办 辞职老板不给结工资怎么办 辞职后老板不发工资怎么办 联想手机不自带系统升级怎么办 苹果6玩崩坏3卡怎么办 机票名字打错了怎么办? 安装软件后显示名字乱码怎么办 户口上民族错了怎么办 改名字后行驶证怎么办 眼角撞到了肿了怎么办