oozie pig操作处于准备状态,作业处于运行状态

zc0qhyus  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(476)

我想运行一个简单的工作流,但每次提交作业时它都会卡在prep状态。在这里,我试图从文本文件中读取逗号分隔的值,并在屏幕上打印它们。为此,我使用以下属性文件,工作流文件和脚本文件。
环境:
hadoop:2.6.0(1个namenode和2个datanode)
奥齐:4.1.0
清管器:0.14.0
这是我的属性文件:
`

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<property>
        <name>nameNode</name>
        <value>hdfs://<IP/aliasname>:<port></value>
</property>
<property>
        <name>jobTracker</name>
        <value><IP/aliasname>:<port></value>
</property>
<property>
        <name>oozie.libpath</name>
        <value><path/to/pig/jars></value>
</property>
<property>
        <name>oozie.wf.application.path</name>
        <value><path/to/workflow app/in hdfs></value>
</property>
</configuration>

`
这是我的工作流程:

<workflow-app name="samplewrokflow" xmlns="uri:oozie:workflow:0.2">
    <start to="TestJob"/> 
    <action name="TestJobR">
        <pig>
            <job-tracker><IP/alias name>:<port></job-tracker>
            <name-node>hdfs://<IP/alias name>:<port></name-node>
            <script><Path/to/pig/script></script>
        </pig>
         <ok to="success"/> 
            <error to="fail"/>  
   </action>
  <kill name="fail"> 
       <message>The Identity Map-Reduce job failed!</message> 
   </kill>
  <end name="success"/>
</workflow-app>

这是我的Pig剧本:

DATA = LOAD 'path/to/sample.txt' USING PigStorage(',') as (name1:chararray,name2:chararray,number:int);DUMP DATA;

这是我在sample.txt中的内容:
,xyz,1
用于运行作业的命令:

oozie job --oozie http://<IP address>:<port>/oozie -config <path/to/configuration file> -run

运行此命令后,我从屏幕上获取作业id。
这是我的oozie作业日志:

2015-06-08 10:58:56,814  INFO ActionStartXCommand:543 - SERVER[pal-hadoop1.cloudapp.net] USER[hadoop1] GROUP[-] TOKEN[] APP[WorkFlow_R] JOB[0000026-150603135220320-oozie-oozi-W] ACTION[0000026-150603135220320-oozie-oozi-W@:start:] Start action [0000026-150603135220320-oozie-oozi-W@:start:] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10]

2015-06-08 10:58:56,815  INFO ActionStartXCommand:543 - SERVER[pal-hadoop1.cloudapp.net] USER[hadoop1] GROUP[-] TOKEN[] APP[WorkFlow_R] JOB[0000026-150603135220320-oozie-oozi-W] ACTION[0000026-150603135220320-oozie-oozi-W@:start:] [***0000026-150603135220320-oozie-oozi-W@:start:***]Action status=DONE

2015-06-08 10:58:56,815  INFO ActionStartXCommand:543 - SERVER[pal-hadoop1.cloudapp.net] USER[hadoop1] GROUP[-] TOKEN[] APP[WorkFlow_R] JOB[0000026-150603135220320-oozie-oozi-W] ACTION[0000026-150603135220320-oozie-oozi-W@:start:] [***0000026-150603135220320-oozie-oozi-W@:start:***]Action updated in DB!

当我使用作业id获取信息时,它显示作业始终处于准备状态。
我用pig独立执行脚本,效果很好。
hdfs结构中的我的工作流目录:

oozie-wf/pigscript.pig   
oozie-wf/workflow.xml  
oozie-wf/sample.txt  
oozie-wf/lib (Contains all pig jar files)

你能告诉我这里有什么可能的问题,因为我不能从我这边纠正它吗?如果你需要更多的细节请告诉我。

yptwkmov

yptwkmov1#

增加nodemanager的总内存大小(或使用yarn-site.xml上的以下属性减少容器默认大小)

<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>12288</value>
  </property>

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

如果你的箱子的货柜位太少!!使用上述修复!!或者找到oozie日志或Yarn日志它的状态。

ejk8hzay

ejk8hzay2#

我认为这是因为集群上的容器数量较少。你们有多少集装箱装Yarn?简单地说,oozie占用了一个容器,其余的都需要运行作业。也许Pig也可能持有一个容器,虽然我不确定这一点。如果容器不足以执行作业,它将保持在prep状态。

相关问题