为什么80%的码农都做不了架构师?>>>   

http://www.learn4master.com/big-data/pyspark/run-pyspark-on-oozie

使用Oozie在YARN上安排PySpark程序 考虑一个用Spark Python API编写的简单字数统计应用程序。以下步骤说明如何使用Oozie在YARN上安排和启动此PySpark作业。完整的程序列表显示在该部分的末尾。

首先,这里有一些关于在多节点集群上运行带有纱线集群模式的PySpark的先决条件的注释:

提交Spark作业时,Spark代码会检查PYSPARK_ARCHIVES_PATH环境变量。如果找不到PYSPARK_ARCHIVES_PATH,Spark会查找SPARK_HOME。您可以使用oozie.launcher.yarn.app.mapreduce.am.env属性设置PYSPARK_ARCHIVES_PATH。 py4j-0.10.4-src.zip和pyspark.zip文件(版本可能因Spark版本而异)是在Spark中运行Python脚本所必需的。因此,在脚本运行时,两个文件都必须存在于类路径中。只需将它们放在工作流的lib /目录下即可。 必须配置-py-files选项并在<spark-opts>选项中传递。 创建工作流定义(workflow.xml)。以下简单工作流定义执行一个Spark作业: <workflow-app xmlns='uri:oozie:workflow:0.5' name='PySpark'> <global> <configuration> <property> <name>oozie.launcher.yarn.app.mapreduce.am.env</name> <value>PYSPARK_ARCHIVES_PATH=pyspark.zip</value> </property> </configuration> </global> <start to='spark-node' /> <action name='spark-node'> <spark xmlns="uri:oozie:spark-action:0.1"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <prepare> <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data"/> </prepare> <master>${master}</master> <name>MyApp</name> <jar>${nameNode}/user/${wf:user()}/${examplesRoot}/MyPython.py</jar> <spark-opts>--conf spark.driver.extraJavaOptions=-Diop.version=4.2.5.0 --conf spark.yarn.archive=hdfs://nn:8020/iop/apps/4.2.5.0-0000/spark2/spark2-iop-yarn-archive.tar.gz --py-files pyspark.zip,py4j-0.10.4-src.zip</spark-opts> <arg>${nameNode}/user/${wf:user()}/${examplesRoot}/input-data</arg> <arg>${nameNode}/user/${wf:user()}/${examplesRoot}/output-data</arg> </spark> <ok to="end" /> <error to="fail" /> </action> <kill name="fail"> <message>Workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}] </message> </kill> <end name='end' /> </workflow-app> 创建Oozie作业配置(job.properties)。 nameNode=hdfs://nn:8020 jobTracker=rm:8050 master=yarn-cluster queueName=default examplesRoot=spark-example oozie.use.system.libpath=true oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot} 创建一个Oozie应用程序目录。使用工作流定义和资源创建应用程序目录结构,如以下示例所示: +-~/spark-example/ +-job.properties +-workflow.xml +-MyPython.py +-WordCount.txt +-lib 将应用程序复制到HDFS。将spark-example /目录复制到HDFS中的用户HOME目录。确保HDFS中的spark-example位置与job.properties中的oozie.wf.application.path值相匹配。 $ hadoop fs -put spark-example /user/ambari-qa/ 将py4j-0.10.4-src.zip和pyspark.zip复制到HDFS。 $ hadoop fs -put /usr/iop/current/spark-client/python/lib/pyspark.zip /user/ambari-qa/spark-example/lib $ hadoop fs -put /usr/iop/current/spark-client/python/lib/py4j-0.10.4-src.zip /user/ambari-qa/spark-example/lib 运行示例作业。 通过运行以下命令提交Oozie作业: $ cd ~/spark-example

$ oozie job -oozie http://oozie-host:11000/oozie -config ./job.properties –run job: 0000031-161115185001062-oozie-oozi-W 检查工作流作业状态: $ oozie job -oozie http://oozie-host:11000/oozie -info 0000031-161115185001062-oozie-oozi-W

Job ID : 0000031-161115185001062-oozie-oozi-W

Workflow Name : PySpark App Path : hdfs://oozie-host:8020/user/ambari-qa/spark-example Status : SUCCEEDED Run : 0 User : ambari-qa Group : - Created : 2016-11-16 08:21 GMT Started : 2016-11-16 08:21 GMT Last Modified : 2016-11-16 08:22 GMT Ended : 2016-11-16 08:22 GMT CoordAction ID: -

Actions

ID Status Ext ID Ext Status Err Code

0000031-161115185001062-oozie-oozi-W@:start: OK - OK -

0000031-161115185001062-oozie-oozi-W@spark-node OK job_1479264601071_0068 SUCCEEDED -

0000031-161115185001062-oozie-oozi-W@end OK - OK -


完整的PySpark计划 from pyspark import SparkConf, SparkContext from operator import add def main(): conf = SparkConf().setAppName("MyApp") sc = SparkContext(conf=conf) lines = sc.textFile("/user/ambari-qa/spark-example/WordCount.txt") words = lines.flatMap(lambda line: line.split(' ')) wc = words.map(lambda x:(x,1)) counts = wc.reduceByKey(add) counts.saveAsTextFile("wcres12") if name == 'main': main()

转载于:https://my.oschina.net/cn0512/blog/2885482

oozie 调度pyspark相关推荐

  1. CDH中hue使用oozie调度的文件注意事项

    CDH中hue使用oozie调度的文件注意事项 三个文件 job.properties 这个很重要,往往在创建得时候没有的,可以从其他地方cp也可以的 [root@hadoop001 bin]# su ...

  2. CDH中hue的oozie调度流程shell

    CDH中hue的oozie调度流程shell 1.将shell脚本上传到对应的hdfs的路径下 2.创建工作流 3.编辑工作流 4.上传脚本 5.添加文件 6.指定执行oozie的时候使用的Hadoo ...

  3. hue 用oozie调度shell(sqoop)脚本问题

    hue 用oozie调度shell(sqoop)脚本问题 真是搞了好几天 hue上的日志问题给的太有迷惑性了 问题一:用户权限问题 对应的更改文件权限就可以了 HADOOP_USER_NAME=${w ...

  4. 通过shell脚本来rerun一个oozie调度失败的job,从而可以跳过执行失败的节点

    标题很长:通过shell脚本来rerun一个oozie调度失败的job,从而可以跳过执行失败的节点 不过目前从oozie调度测试的例子来看,oozie本身的retry好像并没有参数可以控制跳过失败的节 ...

  5. 使用oozie调度MR任务

    第一步:准备MR执行的数据 我们这里通过oozie调度一个MR的程序的执行,MR的程序可以是自己写的,也可以是hadoop工程自带的,我们这里就选用hadoop工程自带的MR程序来运行wordcoun ...

  6. oozie调度shell脚本

    oozie调度任务的一般步骤如下: 创建工作目录并复制模板 在oozie的根目录下,有已经写好的配置文件模板,job.properties和workflow.xml,我们只需要复制过来修改即可,不用从 ...

  7. 大数据工具——oozie调度

    一. 基础命令 #提交任务.-config是指定oozie任务的job.properties文件位置,submit是提交任务,每次提交任务后会把任务放到服务器并生产一个jobId,但是并不会运行这个任 ...

  8. 【构建PB级准实时分析引擎】 -- azkaban、airflow、dolphinscheduler、quartz、xxl-job 、oozie调度方案评测

    评测说明   本评测方案主要从自身实用的角度出发,对比主流的开源任务调度方案,评选出最适合自己的方案,以作为自己的调度工具. 评测目标 短期目标 可调度多台机器的shell/python脚本: 可管理 ...

  9. oozie调度中的重试和手工rerun一个workflow

    在oozie中有Bundle.Coordinator和Workflow三种类型的job,他们之间可以有以下包含关系. Bundle > Coordinator > Workflow. 1. ...

  10. CDH6.3.0 HUE 整合 Oozie调度

    由于oozie的xml配置执行各种任务调度是在太过于繁琐,所有一般都使用hue整合oozie来使用 通过hue对oozie进行配置,所以首先保证hue中 time_zone为Asia/Shanghai ...

最新文章

  1. mysql创建部分索引
  2. new uk psw policy
  3. c++引用专题之普通引用
  4. CodeForces - 1417E XOR Inverse(字典树求逆序对+分治)
  5. js 运算符_JS的相等和严格相等运算符(== amp; ===)
  6. windows服务器下的ftp server搭建
  7. RISC-V架构能否有效挑战ARM和英特尔?
  8. 【note】the swift programming language Swift教程笔记
  9. android 系统框架 dx
  10. Xilisoft DVD to iPhone Converter使用教程
  11. 29. JavaScript - 测试 jQuery
  12. 2018 Multi-University Training Contest 7 - GuGuFishtion
  13. day17 面向对象-成员
  14. 京津冀辽迎入汛以来最强降雨,四川盆地西部形成暴雨结界
  15. PM、RD、QA、OP英文缩写是什么意思
  16. 材料写作素材:关于“大”排比句40例
  17. 字节跳动测开实习面试题
  18. Marshmallow 库
  19. MAC文件图标自动排列+取消自动排列
  20. 中级工程师职称有什么作用?有含金量吗?为什么要办?甘建二

热门文章

  1. “技术·探索”技术作家英雄会带你开启不一样的1024!
  2. 博文视点云原生书单丨释放云原生技术红利
  3. 五步法建设你的数据中台
  4. 快速了解Druid——实时大数据分析软件
  5. 1.7 非平衡数据的处理方法大全
  6. 对比select中的distinct影响
  7. linux 内核恐慌,linux – CentOS 6.5 mdadm Raid 1 – raid数据检查期间的内核恐慌
  8. 力扣-62 不同路径
  9. 力扣-692 前k个高频单词
  10. DevEco Studio 切换黑色界面(两步搞定)