【问题标题】:Pig job always fails猪工作总是失败
【发布时间】:2015-02-03 06:11:05
【问题描述】:

我正在使用用 kerberos 和 pig 0.13.0 版本保护的 hadoop-2.6.0。我在 hdfs 中有一个文件,如下所示

计数

1,ck
2,second

猪脚本

a = load '/user/username/newtable';
b = distinct a;
dump b;

例外

2015-02-03 11:34:45,237 [main] INFO  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 100% complete
2015-02-03 11:34:45,431 [main] ERROR org.apache.pig.tools.pigstats.PigStats - ERROR 0: org.apache.pig.backend.executionengine.ExecException: ERROR 2997: Unable to recreate exception from backed error: AttemptID:attempt_1422943403169_0001_r_000000_3 Info:Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#3
    at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)

    at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)
    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:1628)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

    at org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl.checkReducerHealth(ShuffleSchedulerImpl.java:357)
    at org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl.copyFailed(ShuffleSchedulerImpl.java:279)
    at org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyFromHost(Fetcher.java:351)
    at org.apache.hadoop.mapreduce.task.reduce.Fetcher.run(Fetcher.java:193)


2015-02-03 11:34:45,432 [main] ERROR org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil - 1 map reduce job(s) failed!
2015-02-03 11:34:45,434 [main] INFO  org.apache.pig.tools.pigstats.mapreduce.SimplePigStats - Script Statistics:

在面临此类异常的猪中运行 map reduce 作业时。但是使用 sqoop 导入 map reduce 工作可以正常工作。

任何帮助将不胜感激。

【问题讨论】:

  • 你能在执行 distinct a 时检查你的 pig 脚本失败吗?或加载新表?尝试做一个转储;在加载关系b之前。
  • 转储工作正常。因为在 pig 0.13.0 中,仅仅加载和转储是不执行 map reduce 作业的。

标签: hadoop mapreduce apache-pig kerberos


【解决方案1】:

这个错误: 在 org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 引起:java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES;救助。

通常表示 Pig 无法与您的 Namenode 通信的问题。如果您从另一台机器(如工作站或网关机器)运行 Pig,则最常发生这种情况。 可能的原因:

  • 您设置了两个网络接口,但您通过错误的一个进行路由。
  • 您的 /etc/hosts 文件没有为您的 Namenode 提供正确的 IP 地址。
  • 您的 DNS 服务器未正确解析您的 Namenode(如果 Sqoop 正常工作,除非它是本地的并且 Pig 是远程的,否则可能不是问题)
  • 您的 Pig 配置文件指向 Namenode 的错误 IP 或主机名。看到这个帖子:Configuring pig relation with Hadoop

希望这会有所帮助。

【讨论】:

  • 感谢您的回答。我已经检查了所有这些东西。仅当我在 Windows 中为活动目录启用 LDAP 时才会出现此问题。如果我没有启用 LDAP,那么猪工作工作正常。
猜你喜欢
  • 2018-07-28
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2013-11-17
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多