我正在使用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文件。但是,在弹出这些消息几分钟后,最终会出现正确的输出。
有关如何摆脱这些消息的任何建议吗?
答案 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 启动历史服务器