`

oozie使用中的一些总结(持续完善)

 
阅读更多

 

 

 

0 关于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
		   其中共享库里面存放的是oozie 常见action需要的包  比如hive  hive2 pig  sqoop oozie  hcatalog  distcp等
		   如果是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_20141031094140/sqoop下

    1.2 将 oozie-sharelib-sqoop-4.0.0-cdh5.1.0.jar   sqoop-1.4.4-cdh5.1.0.jar也放在上述目录中

    1.3 你环境中安装的sqoop是1.4.5的版本,那么你就需要在你的sqoop下将对应的包

         eg: sqoop-1.4.5.jar 放在oozie共享库的sqoop目录下,否则在oozie调用sqoop的时候 因为会找不到包

       而包各种奇怪的错。

 

 

2 hadoop运行时内存不足或者其他原因内存引起的错误

 

修改hadoop的配置文件 mapred-site.xml 增加如下内容

<property>
	<name>mapreduce.map.memory.mb</name>
	<value>1024</value>
</property>
<property>
	<name>mapreduce.reduce.memory.mb</name>
	<value>1024</value>
</property>
<property>
	<name>yarn.app.mapreduce.am.resource.mb</name>
	<value>500</value>
</property>

 
修改hadoop的配置文件 yarn-site.xml 增加如下内容

<property>
	<name>yarn.scheduler.minimum-allocation-mb</name>
	<value>512</value>
</property>
<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
	<value>2048</value>
</property>





 

3 关于oozie安装时mysql数据库问题和驱动这块:

 

由于oozie错误或者其他原因造成的oozie安装失败,第二次安装如果采用默认值可能会失败:eg 数据库初始化失败错误,
处理方式: 删除上一次默认的oozie数据文件data文件夹或者修改默认的值使得安装指向别的地方。

 

oozie要用mysql存储数据时,需要在搭建oozie时,将 mysql链接驱动拷贝 分别放在

oozie-4.2.0/lib下

oozie-4.2.0/oozie-server/lib下

oozie-4.2.0/libtools下

 

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"/>
    </fork>
    <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>
    <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"/>
    </action>
    <join name="joining" to="nextaction"/>
    ...
</workflow-app>

 

5.2  oozie分支中,如果分支中出现的是  java节点 但是java节点类中调用的是 mr,

       那么这种情况下,

       要么用 cdh集成好的oozie来执行

       要么你编译apache oozie 然后 和 apache hadoop   hadoop sqoop一起使用,

     否则,如果你下载chd的oozie + cdh的hadoop ,执行5,.2这种情况下 会在分支这块卡死的。

 

    这个结论是工作中遇到 弄了好几个工作日得到的结论。

 

 

 

 

 

 

 

6 关于oozie 对应mysql数据库下表的说明:

 

 

 

 

 

7 关于oozie webservice api的部分说明:

 

 

 

 

 

 

其余问题后续需要跟进的:   需要等到7月份

 

a) 关于oozie流程设计图设计方面的技巧 规则 建议

 

b) 关于oozie 用户的,尤其是oozie在 cm版本上的用户  什么oozie用户 root用户 等等

    在cm上oozie用的是哪个账号提交任务  白名单等

   

 

c)  oozie提怎么提交任务给mr的,oozie是否有一些参数来规定提交到mr后 mr任务的启动的任务数,

    占有资源等

 

分享到:
评论

相关推荐

    oozie介绍及使用详解

    总结来说,Oozie是大数据环境中的核心调度工具,它使得Hadoop生态系统中的作业管理和执行变得更加高效和自动化。通过合理配置和使用Oozie,可以极大地提高大数据处理的效率和可靠性。在实际工作中,深入学习和掌握...

    oozie oozie

    在Hadoop生态系统中,Oozie是一个工作流调度系统,用于管理Hadoop作业。它允许用户定义、调度和协调各种Hadoop相关任务,如MapReduce、Pig、Hive、Sqoop等。当遇到“Table ‘oozie.VALIDATE_CONN’ doesn’t exist”...

    oozie使用整理

    ### Oozie 使用详解 #### 一、Oozie 概述 Oozie 是一个用于管理工作流和协调数据处理任务的开源工具,主要用于在 Hadoop 生态系统中实现复杂的工作流调度。它通过定义一系列任务及其之间的依赖关系来自动化执行大...

    extjs2.2 oozie可以使用的 1积分

    ExtJS和Oozie是两个在IT行业中广泛使用的开源工具,它们在大数据处理和Web应用程序开发方面发挥着重要作用。在本篇文章中,我们将深入探讨这两个技术以及它们之间的结合。 **ExtJS 2.2** ExtJS是一个基于JavaScript...

    oozie工具使用

    oozie工具使用

    oozie的控制台用ext依赖

    这通常是由于Oozie的Web界面依赖于一些外部(ext)库,而这些库并未包含在默认的安装包中。因此,为了使Oozie控制台正常工作,我们需要手动将这些“ext”依赖项添加到Oozie的`libext`目录下。 `libext`目录是Oozie...

    hue平台oozie工作流操作sqoop,把mysql.pdf

    本文主要讲述在Hue平台使用Oozie工作流操作Sqoop工具将MySQL数据库的数据传输到HDFS中,并最终导入到Hive表中的经验。以下是详细知识点: 1. Hue平台和Oozie工作流简介: Hue是一种开源的用户界面,用于简化与...

    OOZIE 配置和调度流程(1).doc

    在 job.properties 文件中配置 oozie.use.system.libpath=true,以便使用 OOZIE 调度 sqoop。 5. 注意事项: * 程序本地可以正常执行,使用 OOZIE 提交到集群后不能正常执行。可能原因:OOZIE 提交的作业由 YARN ...

    Oozie安装部署及任务定义说明

    Oozie是Apache Hadoop生态系统中的一个工作流调度系统,用于管理Hadoop作业的生命周期。以下是对Oozie安装和部署的详细步骤: 1. **Maven安装** - 下载Maven的tar包,如maven-3.3.2,并解压至/usr/local目录。 - ...

    oozie 入门

    oozie 入门 oozie概述:oozie能干什么 oozie格式:怎么用oozie oozie执行:怎么运行oozie

    oozie-5.2.1-distro.tar.gz

    在生产环境中,Oozie的使用涉及到创建工作流定义(使用XML文件),提交工作流,监控运行状态,以及维护Oozie服务器的健康。运维方面,需要关注日志分析,定期备份,以及性能监控,以确保系统的高效运行。 总之,...

    大数据技术之Oozie入门到精通.txt

    - 使用Oozie定义一个工作流,该工作流包括从HDFS读取原始数据、使用MapReduce进行预处理、再通过Hive进行聚合分析等多个步骤。 - 通过命令行工具或API提交该工作流定义至Oozie Server。 - 监控工作流的执行进度和...

    oozie-4.3.0

    **标题:** Oozie 4.3.0 ...总结,Oozie 4.3.0 是一个强大的工作流管理系统,它简化了 Hadoop 生态系统中多任务的协调和调度。通过其丰富的特性和功能,Oozie 为大数据处理带来了高效、灵活和可靠的解决方案。

    OozieWeb界面需要的组件

    **OozieWeb界面及其组件...总结来说,OozieWeb界面的组件,特别是JavaScript库如Ext JS,对于实现高效、直观的Hadoop工作流管理至关重要。通过这些组件,用户能够方便地管理和监控复杂的大数据处理流程,提升工作效率。

    oozie调度脚本.docx

    标题中的"oozie调度脚本.docx"指出我们要讨论的核心技术是Apache Oozie,一个在Hadoop生态系统中用于管理工作流的工具。Oozie提供了对多种Hadoop任务(如MapReduce、HDFS操作、Shell命令、Hive查询等)的集中式、...

    oozie-4.2.0

    总结来说,Apache Oozie 4.2.0是大数据工作流管理的重要工具,它的特性包括高效的工作流引擎、广泛的任务支持、友好的用户界面、强大的安全性以及社区驱动的持续改进。通过深入理解和充分利用这个版本,用户可以构建...

    Oozie调度SparkSQL样例代码_oozie_hive_

    总结来说,通过Oozie调度Spark SQL作业,可以实现灵活的、自动化的数据处理流程,同时解决认证问题,以确保在华为大数据平台上安全、高效地执行Spark SQL查询。这有助于提升大数据处理的效率和自动化程度,是企业级...

    Oozie_ext-2.2.zip

    在实际部署过程中,可能还需要注意一些其他因素,例如服务器的权限设置、Oozie的配置文件(oozie-site.xml)是否正确配置,以及网络环境是否允许Oozie服务器访问这些资源。同时,如果Oozie服务已经运行,重启服务...

    oozie_demo

    【oozie_demo】项目是一个全面展示Oozie工作流程管理工具使用范例的集合。Oozie是Apache Hadoop生态系统中的一个重要的组件,主要用于协调Hadoop集群上的工作流程任务,支持MapReduce、Pig、Hive、Sqoop等多种数据...

Global site tag (gtag.js) - Google Analytics