标签: oozie

在 Oozie 中优化多个 Hive QL

我对 hive 还不够熟悉,所以就在这里。我们正在使用 Oozie 将一堆 Hive ql 作业链接在一起。我的任务是优化已经在我们的生产环境中运行的应用程序。业务合作伙伴不希望花费的时间超过 1.5 小时。我注意到的第一件事是,这个工作流程中有大约 90 个 oozie 操作。我们还与其他应用程序共享纱线队列。其中一半操作是 hive2 操作,每个 Hive QL 操作仅执行一个 HQL 语句。有时 HiveQL 操作之间会出现延迟,因为 Oozie 启动器在队列中等待,然后 HiveQL 在队列中等待。这正常吗?有没有办法解决这个问题。

对于时间敏感的 Hive 查询: 1) Oozie 是我们应该用来将时间敏感的 HiveQL 脚本链接在一起的正确工具吗 2) 有哪些替代方案(使用 Java 或 Python 启动和处理 HQL 之间的流程是否具有性能优势)?3)HQL本身有什么我们可以做的吗?(再说一次,我是 hive 的新手,主要是 MapReduce/Spark 和简单工作流程(少于 20 个操作)的经验 4)还有其他我没有提到的性能考虑因素吗?

谢谢你,

java hadoop hive oozie

2
推荐指数
1
解决办法
1514
查看次数

使用Oozie工作流程和协调器 - E0302:参数错误无效

我正在尝试使用协调器运行工作流,但是当我尝试将工作流和协调器XML文件路径设置在一起时,我收到错误.这就是我的jobs.properties文件的样子:

nameNode=hdfs://10.74.6.155:9000
jobTracker=10.74.6.155:9010
queueName=default
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/${user.name}/examples/apps/test/
oozie.coord.application.path=${nameNode}/user/${user.name}/examples/apps/test/
Run Code Online (Sandbox Code Playgroud)

当我使用命令行运行我的工作流程时:

bin\oozie job -oozie http://localhost:11000/oozie -config examples\apps\test\job.properties -run
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error: E0302 : E0302: Invalid parameter [{0}]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢!

hadoop oozie oozie-coordinator

1
推荐指数
1
解决办法
4598
查看次数

可以将PL/SQL可靠地转换为Pig Lating或使用Pig Latin和Hive的Oozie Pipeline

我很想知道用Hadoop替换我的Oracle数据库并了解Hadoop生态系统.

我有很多PL/SQL脚本需要更换,如果我去这条路线.

我的印象是,通过一些努力,我可以将任何PL/SQL脚本转换/翻译成类似的Pig Latin脚本.如果不仅是Pig Latin,那么通过Oozie将Hive和Pig结合起来.

它是否正确?

hadoop plsql hive apache-pig oozie

1
推荐指数
1
解决办法
2337
查看次数

oozie action 内容里面有必要保持一定的顺序吗?

当我尝试使用以下代码运行 oozie hive 操作时

<action name="Hive-Node">
    <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>
        <prepare>
            <mkdir path="${nameNode}/hive/output"/>
        </prepare>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
            <property>
                <name>hive.insert.into.multilevel.dirs</name>
                <value>true</value>
            </property>
            <property>
                <name>hbase.zookeeper.quorum</name>
                <value>${hbaseZooQuorum}</value>
            </property>
        </configuration>
        <script>${HIVE_QUERY_FILE}</script>
    </hive>
    <ok to="End" />
    <error to="Fail" />
</action>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error: E0701 : E0701: XML schema error, cvc-complex-type.2.4.a: Invalid content was found starting with element 'prepare'. One of '{"uri:oozie:hive-action:0.2":configuration, "uri:oozie:hive-action:0.2":script}' is expected.
Run Code Online (Sandbox Code Playgroud)

但是在我修改了 hive action 中声明标签的顺序<job-xml>...</job-xml><prepare>...</prepare>,即移动后,它工作正常。

是否有必要在 oozie 操作中遵循这些命令?

hadoop hive oozie

1
推荐指数
1
解决办法
2258
查看次数

如何提交oozie协调员工作

我有一个在文件coordinator.xml中定义的oozie协调器作业,它运行在workflow.xml文件中定义的工作流作业。我想运行协调器作业,但是当我发出命令“ oozie job -oozie http://.../oozie/ -config ./job.properties -run”时,它将运行工作流而不是协调器。我如何告诉它运行协调器而不是工作流程?

hadoop oozie oozie-coordinator

1
推荐指数
1
解决办法
2128
查看次数

在Oozie中将参数从一个动作传递到另一个动作

我有一个以下shell脚本:

DATE= date +"%d%b%y" -d "-1 days"
Run Code Online (Sandbox Code Playgroud)

我如何传递DATE给Java动作?

java shell hadoop mapreduce oozie

1
推荐指数
1
解决办法
6029
查看次数

如果在SparkAction中使用PySpark,Oozie作业将无法运行

我在Oozie中遇到过几个SparkAction作业的例子,其中大多数都是用Java编写的.我编辑了一下并在Cloudera CDH Quickstart 5.4.0(使用Spark版本1.4.0)中运行该示例.

workflow.xml

<workflow-app xmlns='uri:oozie:workflow:0.5' name='SparkFileCopy'>
    <start to='spark-node' />

    <action name='spark-node'>
        <spark xmlns="uri:oozie:spark-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <prepare>
                <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/spark"/>
            </prepare>
            <master>${master}</master>
        <mode>${mode}</mode>    
            <name>Spark-FileCopy</name>
            <class>org.apache.oozie.example.SparkFileCopy</class>
            <jar>${nameNode}/user/${wf:user()}/${examplesRoot}/apps/spark/lib/oozie-examples.jar</jar>
            <arg>${nameNode}/user/${wf:user()}/${examplesRoot}/input-data/text/data.txt</arg>
            <arg>${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/spark</arg>
        </spark>
        <ok to="end" />
        <error to="fail" />
    </action>

    <kill name="fail">
        <message>Workflow failed, error
            message[${wf:errorMessage(wf:lastErrorNode())}]
        </message>
    </kill>
    <end name='end' />
</workflow-app>
Run Code Online (Sandbox Code Playgroud)

job.properties

nameNode=hdfs://quickstart.cloudera:8020
jobTracker=quickstart.cloudera:8032
master=local[2]
mode=client
examplesRoot=examples
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/spark
Run Code Online (Sandbox Code Playgroud)

Oozie工作流示例(在Java中)能够完成并完成其任务.

不过我spark-submit用Python/PySpark 编写了一份工作.我试着去除<class>罐子

<jar>my_pyspark_job.py</jar>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行Oozie-Spark作业时,我在日志中出错:

Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.SparkMain], exit code [2]
Run Code Online (Sandbox Code Playgroud)

我想知道如果我使用Python/PySpark,我应该放置什么<class><jar>标签?

java oozie apache-spark pyspark cloudera-quickstart-vm

1
推荐指数
1
解决办法
6044
查看次数

oozie中Hive操作的作业队列

我有一个oozie工作流程.我正在提交所有的蜂巢行动

<name>mapred.job.queue.name</name>
<value>${queueName}</value>
Run Code Online (Sandbox Code Playgroud)

但是对于几个hive操作,启动的作业不在指定的队列中; 它在默认队列中调用.

请告诉我这种行为和解决方案背后的原因.

hadoop hive bigdata oozie

1
推荐指数
1
解决办法
3521
查看次数

及时安排火花工作

这是每日/每周安排Spark Jobs的推荐工具.1)Oozie 2)Luigi 3)Azkaban 4)Chronos 5)气流

提前致谢.

oozie azkaban luigi airflow mesos-chronos

1
推荐指数
1
解决办法
785
查看次数

使用通配符基于工作流名称获取oozie工作流ID

我正在寻找一个使用通配符获取给定名称的所有工作流程ID的列表的命令。

当我从workflow.xml知道完整的工作流名称时,我正在使用以下命令来获取详细信息

oozie jobs -oozie http://oozie.org:11000/oozie
-filter name="workflow name"
Run Code Online (Sandbox Code Playgroud)

在这里,当我仅知道使用通配符的工作流的部分名称时,应如何使用filter命令。

如何使用name值中的通配符?寻找类似的东西

oozie jobs -oozie http://oozie.org:11000/oozie
    -filter name="workflo*"
Run Code Online (Sandbox Code Playgroud)

这将列出名称以“ workflo ” 开头的工作流程的所有工作流程ID详细信息。

oozie oozie-coordinator

1
推荐指数
1
解决办法
918
查看次数

Oozie s3 as job folder

Oozie is failing with following error when workflow.xml is provided from s3, But the same worked provided workflow.xml from HDFS. Same has worked with earlier versions of oozie, Is there anything changed from 4.3 version of oozie.?

Env:

  • HDP 3.1.0
  • Oozie 4.3.1
  • oozie.service.HadoopAccessorService.supported.filesystems=*

Job.properties

nameNode=hdfs://ambari-master-1a.xdata.com:8020
jobTracker=ambari-master-2a.xdata.com:8050
queue=default
#OOZIE job details
basepath=s3a://mybucket/test/oozie
oozie.use.system.libpath=true
oozie.wf.application.path=${basepath}/jobs/test-hive?
Run Code Online (Sandbox Code Playgroud)

#(works with this change in Job.properties)

basepath=hdfs://ambari-master-1a.xdata.com:8020/test/oozie

workflow.xml

?<workflow-app xmlns="uri:oozie:workflow:0.5" name="test-hive">
    <start to="hive-query"/>
    <action name="hive-query" retry-max="2" retry-interval="10">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <script>test_hive.sql</script>
        </hive>
        <ok to="end"/>
        <error to="kill"/> …
Run Code Online (Sandbox Code Playgroud)

hadoop hive amazon-s3 bigdata oozie

1
推荐指数
1
解决办法
211
查看次数

在localhost上的oozie中获取错误500

http:// localhost:11000/oozie /上浏览oozie

它在网页上显示以下错误 -

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 25 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:126)
    org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:585)
    org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:548)
    org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:131)
    org.apache.oozie.servlet.HostnameFilter.doFilter(HostnameFilter.java:84)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

java tomcat hadoop bigdata oozie

0
推荐指数
1
解决办法
845
查看次数

Oozie Java Action使用委托令牌访问Hive Server 2(Kerberized)

目前我遇到一个问题确实需要一些帮助.我们正在尝试对我们的hadoop集群进行kerberize,包括hive server2和oozie.我的oozie作业在数据节点中旋转了一个java动作,试图连接到kerberized hive服务器2.没有用户的kerberos keytab进行身份验证.所以我只能在java动作中使用oozie传递的委托令牌连接到hive服务器2.我的问题是:有没有办法在oozie java动作中使用委托令牌连接到hive服务器2?如果是这样,我怎么能通过hive JDBC做到这一点?谢谢贾里

hive delegation token oozie

0
推荐指数
1
解决办法
1218
查看次数