oozie hive2为什么依赖hive

oozie使用中的一些小结(持续完善) - 互联网当前位置:& &&&oozie使用中的一些小结(持续完善)oozie使用中的一些小结(持续完善)&&网友分享于:&&浏览:0次oozie使用中的一些总结(持续完善)
0 关于oozie 寻找包寻找位置原则:
oozie在运行的时候 只会去两个地方寻找自己需要的lib
1 回去当前提交任务的workflow所在的hdfs目录下的lib下寻找
eg: /user/root/examples/apps/fork-merge的workflow下有
job.properties
workflow.xml三个目录 会去lib目录下找对应jar
2 如果是shell命令提交的话,他会主动去自己的公共资源库中寻找自己需要的jar文件,公共资源库为 /user/root/share/lib/lib_29
其中共享库里面存放的是oozie 常见action需要的包
sqoop oozie
如果是java客户端提交任务的话,需要设置oozie.libpath(此时此路径下可以存放你工程需要的别的jar包而不需要存放在共享库中 防止混淆)
properties.setProperty("oozie.use.system.libpath","true");
---& 设置使用oozie共享库
properties.setProperty("oozie.libpath","hdfs://master:9000/user/hdfs/examples/thirdlib");
---& 设置存放工程使用的第三方的jar
3 上面2是针对java代码写法,如果对应到job.properties写法为:
nameNode=hdfs://master:9000
jobTracker=master:8032
queueName=default
examplesRoot=examples
oozie.use.system.libpath=true
oozie.libpath=hdfs://master:9000/user/hdfs/examples/thirdlib
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/sqoop-sqlserver-to-hdfs
1 关于oozie使用调用sqoop action执行数据导出导入时对应的jar包:
1.1 需要将 mysql/sqlserver/oracle等主流数据库的驱动包放在oozie的共享库对应hdfs目录下 eg:
hdfs://master:9000/user/root/share/lib/lib_40/sqoop下
1.2 将 oozie-sharelib-sqoop-4.0.0-cdh5.1.0.jar
sqoop-1.4.4-cdh5.1.0.jar也放在上述目录中
2 hadoop运行时内存不足或者其他原因内存引起的错误
修改hadoop的配置文件 mapred-site.xml 增加如下内容
&property&
&name&mapred.child.java.opts&/name&
&value&-Xmx4096m&/value&
&/property&
&property&
&name&mapred.map.child.java.opts&/name&
&value&-Xmx4096m&/value&
&/property&
&property&
&name&mapred.reduce.child.java.opts&/name&
&value&-Xmx4096m&/value&
&/property&
或者增加map的数量
3 关于oozie安装时数据库有问题的:
由于oozie错误或者其他原因造成的oozie安装失败,第二次安装如果采用默认值可能会失败:eg 数据库初始化失败错误,处理方式: 删除上一次默认的oozie数据文件data文件夹或者修改默认的值使得安装指向别的地方。
4 oozie提交任务时,job.properties文件的namenode属性值不建议写IP 建议写主机名
5 关于oozie分支的:
oozie的节点分为 动作节点(action) 和控制节点(比如 start end
fork merge)
其中控制节点下目前只可以放动作节点
分支节点下不支持在存放分支节点(即分支套分支的写法)
案例来自官网: http://oozie.apache.org/docs/4.0.0/WorkflowFunctionalSpec.html#a3.1.5_Fork_and_Join_Control_Nodes
&workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1"&
&fork name="forking"&
&path start="firstparalleljob"/&
&path start="secondparalleljob"/&
&action name="firstparallejob"&
&map-reduce&
&job-tracker&foo:8021&/job-tracker&
&name-node&bar:8020&/name-node&
&job-xml&job1.xml&/job-xml&
&/map-reduce&
&ok to="joining"/&
&error to="kill"/&
&action name="secondparalleljob"&
&map-reduce&
&job-tracker&foo:8021&/job-tracker&
&name-node&bar:8020&/name-node&
&job-xml&job2.xml&/job-xml&
&/map-reduce&
&ok to="joining"/&
&error to="kill"/&
&join name="joining" to="nextaction"/&
&/workflow-app&
6 关于oozie 对应mysql数据库下表的说明:
7 关于oozie webservice api的部分说明:
其余问题后续需要跟进的:
需要等到7月份
a) 关于oozie流程设计图设计方面的技巧 规则 建议
b) 关于oozie 用户的,尤其是oozie在 cm版本上的用户
什么oozie用户 root用户 等等
在cm上oozie用的是哪个账号提交任务
oozie提怎么提交任务给mr的,oozie是否有一些参数来规定提交到mr后 mr任务的启动的任务数,
占有资源等
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有oozie hive action注意事项_服务器应用_Linux公社-Linux系统门户网站
你好,游客
oozie hive action注意事项
来源:Linux社区&
作者:cheersu
注:本文指针对版本oozie-3.2.0-incubating。
oozie-hive注意事项:
理论上将hive相关的配置放在oozie.hive.defaults属性指定的文件(hive-default.xml)即可,如下:
&property&& & & &name&oozie.hive.defaults&/name&& & & &value&hive-default.xml&/value&& &/property&&
但,经过实际测试,hive-default.xml里的配置项不起作用,需将用到的配置直接放在workflow.xml里
&property&& & &name&hive.metastore.local&/name&& & &value&true&/value&& &/property&& &property&& & & & & &name&javax.jdo.option.ConnectionURL&/name&& & & & & &!--&value&jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&/value&--&& & & & & &value&jdbc:mysql://192.168.1.100:3306/hive?createDatabaseIfNotExist=true&/value&& & & & & &!--注:由于每个task在tasktracker上执行,所以不能像hive server上配置成localhost,需改成IP或域名--&& &/property&& &property&& & & & & &name&javax.jdo.option.ConnectionDriverName&/name&& & & & & &value&com.mysql.jdbc.Driver&/value&& &/property&& &property&& & & & & &name&javax.jdo.option.ConnectionUserName&/name&& & & & & &value&username&/value&& &/property&& &property&& & & & & &name&javax.jdo.option.ConnectionPassword&/name&& & & & & &value&password&/value&& &/property&& &property&& & &name&hive.metastore.warehouse.dir&/name&& & &value&/user/hive/warehouse&/value&& &/property&&
相关资讯 & & &
& (11月19日)
& (11/15/:52)
& (12/13/:08)
& (11月19日)
& (11/15/:42)
& (06/24/:56)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
匿名 发表于 同意,确实不生效。oozie运行hive以及hive的udf -
- ITeye技术网站
博客分类:
一,
执行hiveAction除了需要配置oozie.hive.defaults外,还需要配置几个hive的参数。
这点我不是很理解,以为只要在hive-site.xml里面配置了,就完事了,结果不行,还需要单独配置,而且oozie.hive.defaults不配置还不行。
配置如下:
&property&
&name&oozie.hive.defaults&/name&
&value&my-hive-default.xml&/value&
&/property&
&property&
&name&hive.metastore.local&/name&
&value&false&/value&
&description&controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM&/description&
&/property&
&property&
&name&hive.metastore.uris&/name&
&value&thrift://xx.xx.xx.xx:9083&/value&
&description&host and port for the thrift metastore server&/description&
&/property&
&property&
&name&hive.metastore.warehouse.dir&/name&
&value&/hive/warehouse0&/value&
&description&location of default database for the warehouse&/description&
&/property&
二,
执行hive的udf时,不需要在hive脚本里面写add /xxx/xxx/xxx/HIVE_UDF.jar.
只要保证这个HIVE_UDF.jar在sharelib里面,或者file指定应该也行(这个没试,猜的)。
那个create temporary function xxxxx as 'yyy';还是要在脚本里面写的。
浏览: 172756 次
来自: 北京
bo_hai 写道楼主的办法解决我了的问题。给你32个兄弟有Q ...
silent1 写道编译ganglia的时候出现此问题,按楼主 ...
楼主的办法解决我了的问题。给你32个
bo_hai 写道oozie 入门
- ITeye技术网站
博客分类:
oozie概述:oozie能干什么
oozie格式:怎么用oozie
oozie执行:怎么运行oozie
oozie概述:
oozie是基于hadoop的调度器,以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar等等。
主要的功能有
Workflow: 顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)
Coordinator,定时触发workflow
Bundle Job,绑定多个coordinator
oozie格式:
写一个oozie,有两个是必要的:job.properties 和 workflow.xml(coordinator.xml,bundle.xml)
一、job.properties里定义环境变量
hdfs://xxx5:8020
jobTracker
jobTracker地址
examplesRoot
oozie.usr.system.libpath
是否加载用户lib库
oozie.libpath
share/lib/user
oozie.wf.appication.path
${nameNode}/user/${user.name}/...
oozie流程所在hdfs地址
workflow:oozie.wf.application.path
coordinator:oozie.coord.application.path
bundle:oozie.bundle.application.path
1.workflow:
&workflow-app xmlns="uri:oozie:workflow:0.2" name="wf-example1"&
&start to="pig-node"&
&action name="pig-node"&
&job-tracker&${jobTracker}&/job-tracker&
&name-node&${nameNode}&/name-node&
&delete path="hdfs://xxx5/user/hadoop/appresult" /&
&/prepare&
&configuration&
&property&
&name&mapred.job.queue.name&/name&
&value&default&/value&
&property&
&property&
&name&press.map.output&/name&
&value&true&/value&
&property&
&property&
&name&mapreduce.fileoutputcommitter.marksuccessfuljobs&/name&
&value&false&/value&
&property&
&/configuration&
&script&test.pig&/script&
&param&filepath=${filpath}&/param&
&ok to="end"&
&error to="fail"&
&kill name="fail"&
Map/Reduce failed, error
message[${wf:errorMessage(wf:lastErrorNode())}]
&/message&
&end name="end"/&
&/workflow-app&
2.coordinator
&coordinator-app name="cron-coord" frequence="${coord:hours(6)}" start="${start}" end="${end}"
timezoe="UTC" xmlns="uri:oozie:coordinator:0.2"&
&workflow&
&app-path&${nameNode}/user/{$coord:user()}/${examplesRoot}/wpath&/app-path&
&configuration&
&property&
&name&jobTracker&/name&
&value&${jobTracker}&/value&
&/property&
&property&
&name&nameNode&/name&
&value&${nameNode}&/value&
&/property&
&property&
&name&queueName&/name&
&value&${queueName}&/value&
&/property&
&/configuration&
&/workflow&
注意:coordinator设置的UTC,比北京时间晚8个小时,所以你要是把期望执行时间减8小时
coordinator里面传值给workflow,example,时间设置为亚洲
&coordinator-app name="gwk-hour-log-coord" frequency="${coord:hours(1)}" start="${hourStart}" end="${hourEnd}" timezone="Asia/Shanghai"
xmlns="uri:oozie:coordinator:0.2"&
&workflow&
&app-path&${workflowHourLogAppUri}/gwk-workflow.xml&/app-path&
&configuration&
&property&
&name&yyyymmddhh&/name&
&value&${coord:formatTime(coord:dateOffset(coord:nominalTime(),-1,'HOUR'), 'yyyyMMddHH')}&/value&
&/property&
&/configuration&
&/workflow&
&/coordinator-app&
&bundle-app name='APPNAME' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='uri:oozie:bundle:0.1'&
&controls&
&kick-off-time&${kickOffTime}&/kick-off-time&
&/controls&
&coordinator name='coordJobFromBundle1' &
&app-path&${appPath}&/app-path&
&configuration&
&property&
&name&startTime1&/name&
&value&${START_TIME}&/value&
&/property&
&property&
&name&endTime1&/name&
&value&${END_TIME}&/value&
&/property&
&/configuration&
&/coordinator&
&coordinator name='coordJobFromBundle2' &
&app-path&${appPath2}&/app-path&
&configuration&
&property&
&name&startTime2&/name&
&value&${START_TIME2}&/value&
&/property&
&property&
&name&endTime2&/name&
&value&${END_TIME2}&/value&
&/property&
&/configuration&
&/coordinator&
&/bundle-app&
oozie hive
&action name="hive-app"&
&hive xmlns="uri:oozie:hive-action:0.2"&
&job-tracker&${jobTracker}&/job-tracker&
&name-node&${nameNode}&/name-node&
&job-xml&hive-site.xml&/job-xml&
&script&hivescript.q&/script&
&param&yyyymmdd=${yyyymmdd}&/param&
&param&yesterday=${yesterday}&/param&
&param&lastmonth=${lastmonth}&/param&
&ok to="result-stat-join"/&
&error to="fail"/&
启动任务:
oozie job -oozie http://xxx5:11000/oozie -config job.properties -run
停止任务:
oozie job -oozie http://localhost:8080/oozie -kill 14-21-oozie-joe
注意:在停止任务的时候,有的时候会出现全线问题,需要修改oozie-site.xml文件
hadoop.proxyuser.oozie.groups *
hadoop.proxyuser.oozie.hosts *
oozie.server.ProxyUserServer.proxyuser.hadoop.hosts *
oozie.server.ProxyUserServer.proxyuser.hadoop.groups *
以上所有东西虽然已经使用过了,但是内容都是手打的,若有笔误,请见谅
浏览 20645
whythiszhao 写道请问一下楼主, oozie hive 这块代码中,
&param&yyyymmdd=${yyyymmdd}&/param&&&&
&param&yesterday=${yesterday}&/param&&
&param&lastmonth=${lastmonth}&/param& 以上三个参数的值,从哪里传过来的???谢谢~job.properties里面,或是coordinator里面,都成楼主您能把与变量yyyymmdd、yesterday、lastmonth相关的job.properties、coordinator配置文件或事例发我看一下吗? 我的qq:.谢谢
请教楼主,如果我想从 coordinator 中传递每次触发时的 当前时间 到 workflow 中,最终在 hive script 中使用,不知道有没有示例?多谢楼主,已解决。
请问一下楼主, oozie hive 这块代码中,
&param&yyyymmdd=${yyyymmdd}&/param&&&&
&param&yesterday=${yesterday}&/param&&
&param&lastmonth=${lastmonth}&/param& 以上三个参数的值,从哪里传过来的???谢谢~job.properties里面,或是coordinator里面,都成
blackproof
浏览: 750743 次
来自: 北京
Good job !!
为啥EPHEMERAL_SEQUENTIAL类型的节点并没有自 ...
写道新手讨厌不贴整个工程代码的大侠需要 ...
新手讨厌不贴整个工程代码的大侠oozie运行hive
oozie 是用来做任务调度的。
可以在配置按照一定时间运行hql语句,这用来做定时的数据清洗很有用。
前提是你的hive和你的oozie都已经配置好了。hive配置很简单,oozie配置中的问题可以看我的上一篇博客。
分为几步,
1 hive-site.xml 及对应版本的hive
的jar包,都要上传到hdfs。你肯定在hdfs上已经建立了对应的目录。
2 配置主要是三个文件,
job.properties &
workflow.xml & &
script.q & &
&存放你要执行的hql语句,参数可以通过workflow.xml中的param传过来。
job.properties 中需要加上
hiveSitePath=hdfs://node1:8020/user/root/hive/hive-site.xml
&root是我的oozie用户,可以改成你的hdfs目录
oozie.libpath=hdfs://node1:8020/user/root/share/lib/hive
此外,需要注意的就是 job.properties 中,jobTracker=node1:8032
根据你的hadoop的实际配置来填写,如果没有在配置中找不到这样的设置,就像这样去填写yarn的端口就可以了。
最后 &oozie.use.system.libpath=true
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 oozie hive2 的文章

 

随机推荐