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

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github:https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的

内容概述

1.环境准备及描述

2.示例代码编写及测试

3.总结

测试环境

1.CM和CDH版本为5.13.1

前置条件

1.集群未启用Kerberos

2.环境准备及描述

1.编写测试ooziejob.sh脚本

(可左右滑动)

2.我们将作业运行的jar包上传到HDFS目录

(可左右滑动)

3.定义一个Shell Action的workflow.xml文件,内容如下:

(可左右滑动)

注意:workflow.xml文件中使用的参数配置为动态参数,会在后面的代码中指定该参数的值。

4.将定义好的workflow.xml文件上传至HDFS的

/user/faysontest/oozie/shellaction目录下

(可左右滑动)

3.创建Maven示例工程

1.使用Maven创建Java工程

2.工程pom.xml文件内容如下

(可左右滑动)

4.编写Oozie示例代码

1.编写ShellWorkflowDemo.java,示例代码如下

(可左右滑动)

5.示例运行及验证

1.运行JavaWorkflowDemo代码,向CDH集群提交Java作业

2.登录CM进入Yarn服务的“应用程序”菜单查看

3.打开Yarn的8088 Web界面查看

4.Shell脚本执行结果

可以看到作业已运行成功,到此已完成了通过OozieAPI接口创建workflow并运行的示例演示。

6.总结

通过Oozie API提交作业,需要先定义好workflow.xml文件

参数传递通过在代码里面调用oozieClient.createConfiguration()创建一个Properties对象将K,V值存储并传入oozieClient.run(properties)中。

在指定HDFS上运行的jar或workflow的路径时需要带上HDFS的路径,否则默认会找到本地的目录

GitHub地址:

https://github.com/fayson/cdhproject/blob/master/ooziedemo/src/main/java/com/cloudera/nokerberos/ShellWorkflowDemo.java

https://github.com/fayson/cdhproject/blob/master/ooziedemo/conf/workflow-shell-template.xml

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180222G00UE200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券