2013-07-29 50 views
15

我使用Hadoop 2.0.5运行Apache Pig .11.1。Apache Pig中的连接错误

我在猪中工作的大多数简单工作都非常好。

然而,每当我试图在一个大的数据集,或限制经营者使用GROUP BY,我得到这些连接错误:

2013-07-29 13:24:08,591 [main] INFO org.apache.hadoop.mapred.ClientServiceDelegate - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server 
013-07-29 11:57:29,421 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 

2013-07-29 11:57:30,421 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 

2013-07-29 11:57:31,422 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 
... 
2013-07-29 13:24:18,597 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS) 
2013-07-29 13:24:18,598 [main] ERROR org.apache.hadoop.security.UserGroupInformation - PriviledgedActionException as:gpadmin (auth:SIMPLE) cause:java.io.IOException 

奇怪的是,这些错误后保持出现约2分钟,他们会停下来,正确的输出显示在底部。

所以Hadoop运行良好并计算出正确的输出。问题在于这些连接错误一直在弹出。

LIMIT运算符总是出现此错误。它发生在MapReduce模式和本地模式。 GROUP BY运算符将在小数据集上正常工作。

我注意到的一件事是,无论何时出现此错误,作业都会在作业中创建并运行多个JAR文件。但是,在弹出这些消息几分钟后,终于出现正确的输出。

关于如何摆脱这些消息的任何建议?

+0

你的namenode是本地的吗?如果没有,它试图以0.0.0.0访问它。它可能没有从core-site.xml中获取namenode位置,或者你有一个/ etc/hosts文件搞砸了。 –

+0

namenode是本地的。 core-site.xml和/ etc/hosts似乎都被正确配置,因为我的大多数其他Pig/Hadoop作业都按照他们应该的方式工作。另外,连接错误显示几分钟后,会显示正确的作业输出。所以我认为这个问题是另一回事。 –

+0

@AndyBotelho可能值得查看jobhistory服务器的日志 –

回答

30

是的问题是作业历史记录服务器没有运行。

所有我们不得不做来解决这个问题是输入此命令进入命令提示符:

mr-jobhistory-daemon.sh start historyserver 

此命令启动作业历史记录服务器。现在,如果我们输入'jps',我们可以看到JobHistoryServer正在运行,我的Pig作业不再浪费时间尝试连接到服务器。

+1

这非常有帮助。 Pig 0.13 Hadoop 2.3.0 - 根本无法成功完成,它只会重试10次,然后重新开始。 – jeveloper

+0

这是一个完美的答案! –

+1

这个文件在我的版本中的sbin目录下,FYI – WattsInABox

4

我认为,这个问题与hadoop mapred-site配置问题有关。 History Server在本地主机上运行默认设置,因此您需要添加配置的主机。

<property> 
<name>mapreduce.jobhistory.address</name> 
<value>host:port</value> 
</property> 

那么火这个命令 -

mr-jobhistory-daemon.sh start historyserver 
1

我使用Hadoop 2.6.0,所以我不得不这样做

$ mr-jobhistory-daemon.sh --config /usr/local/hadoop/etc start historyserver 

其中,在/ usr /本地/ Hadoop的的/ etc是我的HADOOP_CONF_DIR。

0

我正在使用Hadoop 2.2.0。此问题是由于历史记录服务器未运行。我不得不启动历史记录服务器。我用下面的命令来启动历史服务器:

[根@本地〜] $ /usr/lib/hadoop-2.2.0/sbin/mr-jobhistory-daemon.sh 开始historyserver