Pig 脚本在 group by 语句中挂起

Posted

技术标签:

【中文标题】Pig 脚本在 group by 语句中挂起【英文标题】:Pig script getting hang at group by statement 【发布时间】:2017-10-31 06:37:27 【问题描述】:

我编写的猪脚本在我的本地上运行 4gb 数据,但是当我尝试在 EMR 集群上运行它时,它在特定的 group by 语句处挂起。以下是我得到的错误......

    at org.apache.tez.dag.app.dag.impl.VertexImpl$NoOpVertexManager.onVertexStateUpdated(VertexImpl.java:4528)
    at org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerEventOnVertexStateUpdate.invoke(VertexManager.java:564)
    at org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerEvent$1.run(VertexManager.java:647)
    at org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerEvent$1.run(VertexManager.java:642)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
    at org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerEvent.call(VertexManager.java:642)
    at org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerEvent.call(VertexManager.java:631)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

原因:org.apache.tez.dag.app.dag.impl.AMUserCodeException:无法初始化Edge,EdgeInfo:sourceVertexName=scope-325,destinationVertexName=scope-329 在 org.apache.tez.dag.app.dag.impl.Edge.initialize(Edge.java:174) 在 org.apache.tez.dag.app.dag.impl.Edge.setEdgeProperty(Edge.java:196) 在 org.apache.tez.dag.app.dag.impl.VertexImpl.setParallelismWrapper(VertexImpl.java:1724) ... 16 更多 引起:java.lang.IllegalStateException 在 com.google.common.base.Preconditions.checkState(Preconditions.java:133) 在 org.apache.tez.dag.library.vertexmanager.ShuffleVertexManager$CustomShuffleEdgeManager.initialize(ShuffleVertexManager.java:251) 在 org.apache.tez.dag.app.dag.impl.Edge.initialize(Edge.java:171) ... 18 更多 ] 顶点已终止,顶点名称=范围-346,顶点ID=顶点_1509345097826_0006_1_11,诊断= [顶点在新状态下收到终止。,顶点顶点_1509345097826_0006_1_11 [范围-346]由于:OTHER_VERTEX_FAILURE而终止/失败] 顶点已终止,顶点名称=范围-344,顶点ID=顶点_1509345097826_0006_1_10,诊断= [顶点在新状态下收到终止。,顶点顶点_1509345097826_0006_1_10 [范围-344]由于:OTHER_VERTEX_FAILURE而终止/失败] 顶点已终止,顶点名称=范围-334,顶点ID=顶点_1509345097826_0006_1_09,诊断= [顶点在初始化状态下收到终止。,顶点顶点_1509345097826_0006_1_09 [范围-334]由于:OTHER_VERTEX_FAILURE而终止/失败] 顶点已终止,顶点名称=范围-317,顶点ID=顶点_1509345097826_0006_1_02,诊断= [顶点在初始化状态下收到终止。,顶点顶点_1509345097826_0006_1_02 [范围-317]由于:OTHER_VERTEX_FAILURE而终止/失败] 顶点已终止,vertexName=scope-316,vertexId=vertex_1509345097826_0006_1_01,diagnostics=[Vertex 在 RUNNING 状态下收到 Kill。,由于 OTHER_VERTEX_FAILURE,Vertex 未成功,failedTasks:0killedTasks:1,Vertex vertex_1509345097826_0006_1_01 [scope-316]由于:OTHER_VERTEX_FAILURE] 顶点被杀死,vertexName=scope-315,vertexId=vertex_1509345097826_0006_1_00,diagnostics=[Vertex 在 RUNNING 状态下收到 Kill。,由于 OTHER_VERTEX_FAILURE,Vertex 没有成功,failedTasks:0killedTasks:68,Vertex vertex_1509345097826_0006_1_00 [scope-31]由于:OTHER_VERTEX_FAILURE] 由于 VERTEX_FAILURE,DAG 没有成功。 failedVertices:6 killVertices:6

【问题讨论】:

【参考方案1】:

你正在运行什么猪代码?提供完整的信息以及数据和完整的猪代码?

【讨论】:

以上是关于Pig 脚本在 group by 语句中挂起的主要内容,如果未能解决你的问题,请参考以下文章

为啥包含 group by、sum 或 where 子句时这条 SQL 语句会挂起?

Group By 语句中的重复列

SSIS 包中的 C# 脚本在 SQL Server 表的数据执行过程中挂起,没有明确的错误消息

apache-Pig map-reduce group by error

Hadoop Pig GROUP by id,获取 owner_id?

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?