Apache Pig中的连接错误

时间:2013-07-29 17:42:02

标签: hadoop apache-pig

我正在使用Hadoop 2.0.5运行Apache Pig .11.1。

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

但是,每当我尝试在大型数据集或LIMIT运算符上使用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文件。但是,在弹出这些消息几分钟后,最终会出现正确的输出。

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

4 个答案:

答案 0 :(得分:31)

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

我们要解决此问题的所有方法是将此命令输入命令提示符:

mr-jobhistory-daemon.sh start historyserver

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

答案 1 :(得分:4)

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

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

然后触发此命令 -

mr-jobhistory-daemon.sh start historyserver

答案 2 :(得分:1)

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

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

其中,/ usr / local / hadoop / etc是我的HADOOP_CONF_DIR。

答案 3 :(得分:0)

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

  

[root @ localhost~] $ /usr/lib/hadoop-2.2.0/sbin/mr-jobhistory-daemon.sh   启动历史服务器