关于oozie 寻找包寻找位置原则:
oozie在运行的时候 只会去两个地方寻找自己需要的lib
1 回去当前提交任务的workflow所在的hdfs目录下的lib下寻找
eg: /user/root/examples/apps/fork-merge的workflow下有 job.properties lib workflow.xml三个目录 会去lib目录下找对应jar
2 如果是shell命令提交的话,他会主动去自己的公共资源库中寻找自己需要的jar文件,公共资源库为 /user/root/share/lib/lib_20150128185329
如果是java客户端提交任务的话,需要设置oozie.libpath(此时此路径下可以存放你工程需要的别的jar包而不需要存放在共享库中 防止混淆)
其中共享库里面存放的是oozie 常见action需要的包 比如hive hive2 pig sqoop oozie hcatalog distcp等
properties.setProperty("oozie.use.system.libpath","true"); ---> 设置使用oozie共享库
nameNode=hdfs://master:9000
properties.setProperty("oozie.libpath","hdfs://master:9000/user/hdfs/examples/thirdlib"); ---> 设置存放工程使用的第三方的jar
3 上面2是针对java代码写法,如果对应到job.properties写法为:
jobTracker=master:8032
queueName=default
examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/sqoop-sqlserver-to-hdfs
oozie.use.system.libpath=true
oozie.libpath=hdfs://master:9000/user/hdfs/examples/thirdlib
1 关于oozie使用调用sqoop action执行数据导出导入时对应的jar包:
1.1 需要将 mysql/sqlserver/oracle等主流数据库的驱动包放在oozie的共享库对应hdfs目录下 eg:
hdfs://master:9000/user/root/share/lib/lib_20141031094140/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 增加如下内容
-Xmx4096m
mapred.child.java.opts
mapred.map.child.java.opts
-Xmx4096m
-Xmx4096m
mapred.reduce.child.java.opts
或者增加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
...
foo:8021
bar:8020
job1.xml
bar:8020
foo:8021
job2.xml
...
6 关于oozie 对应mysql数据库下表的说明:
7 关于oozie webservice api的部分说明:
其余问题后续需要跟进的: 需要等到7月份
a) 关于oozie流程设计图设计方面的技巧 规则 建议
b) 关于oozie 用户的,尤其是oozie在 cm版本上的用户 什么oozie用户 root用户 等等
在cm上oozie用的是哪个账号提交任务 白名单等
c) oozie提怎么提交任务给mr的,oozie是否有一些参数来规定提交到mr后 mr任务的启动的任务数,
占有资源等