Parameters在Oozie的hive action中的使用
来源:互联网 发布:java标识符是什么 编辑:程序博客网 时间:2024/06/16 10:21
目标:从hive action中获取结果,传入下一个hive action
现状:很不幸运,目前hive action不支持capture output
实现:使用ssh action运行hive script获得output, 并将其传入hive action
Detail:
- ssh脚本去echo对应参数(key=value)
echo "minDate=${minDate}"
- Hive action可以给Hive Script 使用下面方法传参
<param>DATE_TODAY=${wf:actionData('name_of_the_shell_action_goes_here')['minDate']</param>
- Hive Script使用下面方法去接受参数
SELECT * FROM foo where date = ${minDate};
Demo
- testShell.sh
minDate=`hive -e "select current_date;"`echo "minDate='${minDate}'"
- testParaShellToHive.hql
select current_date>${MYDATE};
- workflow.xml
<?xml version="1.0" encoding="UTF-8"?><workflow-app xmlns="uri:oozie:workflow:0.5" name="testHive" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="uri:oozie:workflow:0.5"> <start to="ssh-demo"/> <action name="ssh-demo"> <ssh xmlns="uri:oozie:ssh-action:0.1"> <host>${sshUser}@${hostName}</host> <command>sh ${SCRIPTS}/testShell.sh</command> <capture-output/> </ssh> <ok to="hive-demo"/> <error to="kill"/> </action> <action name="hive-demo"> <hive xmlns="uri:oozie:hive-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <script>${dbScripts}/testParaShellToHive.hql </script> <param>MYDATE=${wf:actionData('ssh-demo')['minDate']}</param> </hive> <ok to="end"/> <error to="kill"/> </action> <kill name="kill"> <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] </message> </kill> <end name="end"/></workflow-app>
- hive.properties
oozie.wf.application.path=hdfs:..._ftr_dtls/oozieappPath=hdfs...ing_ftr_dtls/oozienameNode=hdfs://cvldhdpds1jobTracker=ip-1...:8050user.name=yyangmetaStoreURI=thrift://ip-10-1...ernal:9083sshUser=bisusrhostName=10.177.228.19dbScripts=hdfs://cvldhdpd...ftr_dtls/oozie/hqlSCRIPTS=hdfs://cvldhdpd...ftr_dtls/oozie/shell
Oozieの运行命令
oozie job -oozie http://10.177.2...0/oozie -config hive.properties -run
Oozieの查看log命令
oozie job -oozie http://10...000/oozie -log 0000074-160427121156888-oozie-oozi-W > outputvi output
ps: 0000074-160427121156888-oozie-oozi-W 是你的Job ID
注意事项:
- testParaShellToHive.hql 和 workflow.xml必须要拷贝到hdfs
- testShell.ksh 和 hive.properties应该保存在local上
Appendix
- Hadoop 删除hdfs文件
hadoop fs -rm hdfs://.../workflow.xml
- Hadoop 从local拷贝文件到HDFS
hadoop fs -put workflow.xml hdfs://.../workflow.xml
- Hadoop 创建hdfs目录
hadoop fs -mkdir hdfs://.../test
Reference
[1](http://blog.csdn.net/xiao_jun_0820/article/details/40370783 “oozie 知识整合”)
[2](https://www.mail-archive.com/user@oozie.apache.org/msg01136.html “Oozie - capture output and pass it to hive script as input”)
0 0
- Parameters在Oozie的hive action中的使用
- oozie hive action注意事项
- cdh5版本中的oozie hive action使用及踩坑集锦
- Oozie中Hive action配置时的注意事项
- Oozie Hive action XML Schema版本冲突
- oozie下使用hive UDF的惨痛教训
- 由于在写oozie hive action时候script属性指定hql脚本时多写了一个斜杠导致的一个悲剧,以及解决方案
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- OOzie调度sqoop1 Action 从mysql导入数据到hive
- oozie在hadoop中的意义
- oozie使用的注意事项
- 使用oozie的注意事项
- Oozie的使用
- oozie使用中的一些小结
- Oozie MapReduce Action配置的要点
- 在Oozie 中调度执行shell、hive 脚本,以及通过shell脚本执行hive/sqoop/shell脚本的方法
- 【新手入门】Oozie workflow如何在action之间传递参数
- hibernate id 生成器
- CLOSE_WAIT状态的原因与解决方法
- 24. Swap Nodes in Pairs
- 用Jenkins搭建Android自动打包环境
- linux 解决大量SYN_RECV CLOSE_WAIT
- Parameters在Oozie的hive action中的使用
- 微信平台开发环境
- [ngix]CentOS6 下nginx的安装
- CLOSE_WAIT状态的讨论
- PGM - Week 1
- 搭建高可用MongoDB集群
- 如何使用Ant脚本编译出Jar和Apk包
- activity的启动流程及框架
- 写一个字符串到文件