专栏首页python3oozie创建工作流,手动配置和使用H

oozie创建工作流,手动配置和使用H

oozie创建工作流

工作流的执行命令参考博客:https://www.jianshu.com/p/6cb3a4b78556,也可以键入oozie help查看帮助

手动配置oozie的workflow

job.properties文件,存放workflow.xml文件可能用到的一些参数 job.properties

# 注意变量名不要包含特殊字符,否则在 spark 中会出现无法解析变量名的问题
# oozie.wf.application.path的路径必须在hdfs上,因为整个集群要访问

nameNode=hdfs://txz-data0:9820
resourceManager=txz-data0:8032
oozie.use.system.libpath=true
oozie.libpath=${nameNode}/share/lib/spark2/jars/,${nameNode}/share/lib/spark2/python/lib/,${nameNode}/share/lib/spark2/hive-site.xml
oozie.wf.application.path=${nameNode}/workflow/data-factory/download_report_voice_and_upload/Workflow
oozie.action.sharelib.for.spark=spark2

archive=${nameNode}/envs/py3.tar.gz#py

# 如果 dryrun 为 true,表示只是测试当前的 workflow,并不具体记录相应 job
dryrun=false

sparkMaster=yarn-cluster
sparkMode=cluster
scriptRoot=/workflow/data-factory/download_report_voice_and_upload/Python
sparkScriptBasename=download_parquet_from_data0_upload_online.py
sparkScript=${scriptRoot}/${sparkScriptBasename}
pysparkPath=py/py3/bin/python3

workflow.xml文件

<!--
    这是为oozie的workflow提供参数,里面用到的变量默认来自job.properties文件
-->

<workflow-app xmlns='uri:oozie:workflow:1.0' name='download_parquet_from_data0_upload_online'>

    <global>
        <resource-manager>${resourceManager}</resource-manager>
        <name-node>${nameNode}</name-node>
    </global>

    <start to='spark-node' />

    <action name='spark-node'>
        <spark xmlns="uri:oozie:spark-action:1.0">
            <master>${sparkMaster}</master>
            <mode>${sparkMode}</mode>
            <name>report_voice_download_pyspark</name>
            <jar>${sparkScriptBasename}</jar>
            <spark-opts>
                --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=${pysparkPath}
            </spark-opts>
            <file>${sparkScript}#${sparkScriptBasename}</file>
            <archive>${archive}</archive>
        </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>

将这两个文件放在本地磁盘上面,例如放在文件夹/home/workflow/

运行命令oozie job -oozie http://txz-data0:11000/oozie -config /home/workflow/job.properties -run即可运行这个workflow

这样手写配置的话,在Hue上面是不可见的,所以后面都是在Hue上面配置workflow,然后再配置Schedule。具体配置见博客https://blog.csdn.net/qq_22918243/article/details/89204111

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python学习 第五篇 flask

    py3study
  • JSP(4)----servlet编程3

    由Servlet容器管理的对象,过滤器的功能是在原数据和目的数据之间起过滤作用的中间组件。

    py3study
  • Python 类的封装

    封装(Encapsulation)是对 object 的一种抽象,即将某些部分隐藏起来,在程序外部看不到,即无法调用(不是人用眼睛看不到那个代码,除非用某种加密...

    py3study
  • 如何使用Oozie API接口向非Kerberos环境的CDH集群提交Shell工作流

    前面Fayson介绍了《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业》和《如何使用Oozie API接口向非Kerber...

    Fayson
  • MySql[二]

    视图就是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需要使用[名称]即可获取结果集并可以将其当做代表来使用·

    Wyc
  • 如何有逻辑的,简单清晰的回应问题

    分享一个回答问题的小技巧。作为咨询顾问,有条理的回答别人的问题是基本功。毕竟卖的就是服务,又没有多少选择客户的自由。碰到各种类型的问题,上到九天揽月,下到五洋捉...

    接地气的陈老师
  • mysql 查询用法

    #去重复查询DISTINCT mysql> select * from student; +------+------+------+ | uid | nam...

    零月
  • Spring 常见问题与解决方法

    本文节选自《Netkiller Java 手札》 地址 http://www.netkiller.cn/java/spring/ 下面是日志中常见的异常与解决方...

    netkiller old
  • hadoop集群搭建

    其他两台机器改一下我们的hostname就行了 node2 node3(重复上面的操作)

    背雷管的小青年
  • 犹他大学计算机系终身教授承恒达:人工智能中不确定性的研究 | CCF-GAIR 2018

    AI 科技评论按:2018 全球人工智能与机器人峰会(CCF-GAIR)在深圳召开,峰会由中国计算机学会(CCF)主办,雷锋网、香港中文大学(深圳)承办,得到了...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券