猪的工作总是失败

时间:2015-02-03 06:11:05

标签: hadoop mapreduce apache-pig kerberos

我使用的是hadoop-2.6.0,用kerberos和猪版本0.13.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:

在运行地图时减少猪面临此类异常的工作。但是使用sqoop导入map reduce工作正常。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

此错误: at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)引起:java.io.IOException:超过MAX_FAILED_UNIQUE_FETCHES;舀出。

通常表示Pig能够与您的Namenode通信的问题。如果您从工作站或网关机器等其他计算机上运行Pig,则最常发生这种情况。 可能的原因:

  • 您有两个网络接口设置,并且您正在通过错误路由。
  • 您的/ etc / hosts文件没有Namenode的正确IP地址。
  • 您的DNS服务器没有正确解析您的Namenode(如果Sqoop工作,可能不是问题,除非它是本地的并且Pig是远程的)
  • 您的Pig配置文件指向Namenode的错误IP或主机名。请参阅此帖子:Configuring pig relation with Hadoop

希望这有帮助。