2016-05-31 268 views
4

我正试图运行一个简单的工作流程来执行配置单元脚本。 这个配置单元脚本只是调用加入(表非常); 一旦配置单元脚本执行结束,我期待看到工作流状态从RUNNING变为成功,但这不会发生。oozie - 输出数据超出限制[2048]

这是工作流日志的内容:

2016-05-31 15:52:34,590 WARN 

org.apache.oozie.action.hadoop.HiveActionExecutor: 
SERVER[hadoop02] U 
SER[scapp] 
GROUP[-] 
TOKEN[] 
APP[wf-sqoop-hive-agreement] 
JOB[0000001-160531143657136-oozie-oozi-W] 
ACTION[[email protected]] Launcher 
ERROR, reason: Main class [org.apache.oozie.action.hadoop.HiveMain], exception invoking main(), Output data exceeds its limit [2048] 2016-05-31 15:52:34,591 

WARN org.apache.oozie.action.hadoop.HiveActionExecutor: 
SERVER[hadoop02] 
USER[scapp] 
GROUP[-] 
TOKEN[] 
APP[wf-sqoop-hive-agreement] 
JOB[0000001-160531143657136-oozie-oozi-W] 
ACTION[[email protected]] 
Launcher exception: Output data exceeds its limit [2048] 
org.apache.oozie.action.hadoop.LauncherException: Output data exceeds its limit [2048] 
at org.apache.oozie.action.hadoop.LauncherMapper.getLocalFileContentStr(LauncherMapper.java:415)  
at org.apache.oozie.action.hadoop.LauncherMapper.handleActionData(LauncherMapper.java:391) 
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:275) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) 
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) 
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) 
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)  
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)  
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 
+1

奇怪。这个错误对于具有''标志的Shell或Java操作是有意义的,但输出中有太多的键/值数据,但这是一个Hive操作,没有输出用于捕获和处理Oozie。除非你运行一个简单的SELECT语句向StdOut吐出结果 - 这对于Oozie预定的批量作业来说很愚蠢(为什么要用SELECT结果来泛滥YARN日志,而没有人能够访问?) –

回答

2

它与下面的属性,可以增加它的价值,然后再试一次?

Oozie的-default.xml中

<property> 
<name>oozie.action.max.output.data</name> 
<value>XXXX</value> 
</property> 

Ambari: 在Oozie的服务配置添加这 - > oozie.action.max.output.data = 4096

增加该值不亚于neccesary为了得到你的查询结果。目前结果超过2048B,尝试将价值翻倍。

4

@BorderStark 我不认为该属性表示其大小以MB为单位。大小是“字符”,即根据oozie-default.xml文件中的以下条目的字节。

<property> 
    <name>oozie.action.max.output.data</name> 
    <value>2048</value> 
    <description> 
     Max size in characters for output data. 
    </description> 
</property> 
1

我认为你可能已经包含在您的蜂巢行动<capture-output>元素或工作流的任何其他操作。尝试从工作流中删除该元素并再次运行。

<capture-output>将举行STDOUT ssh命令的,仅限于2KiB [2048个字节]

您可以了解更多有关它here