pig一直尝试连接到作业历史服务器(但失败)

iibxawm4  于 2021-05-30  发布在  Hadoop
关注(0)|答案(4)|浏览(453)

我正在运行一个无法连接到hadoop作业历史服务器的pig作业。
任务(通常是具有 GROUP BY )运行一段时间后,它会以如下消息开始:

2015-04-21 19:05:22,825 [main] INFO  org.apache.hadoop.mapred.ClientServiceDelegate - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
2015-04-21 19:05:26,721 [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=1000 MILLISECONDS)
2015-04-21 19:05:29,721 [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=1000 MILLISECONDS)

然后,它会继续一段时间来重试连接。有时它比工作更重要。其他时候,它抛出此异常:

2015-04-21 19:05:55,822 [main] WARN  org.apache.pig.tools.pigstats.mapreduce.MRJobStats - Unable to get job counters
java.io.IOException: java.io.IOException: java.net.NoRouteToHostException: No Route to Host from  cluster-01/10.10.10.11 to 0.0.0.0:10020 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host; For more details see:  http://wiki.apache.org/hadoop/NoRouteToHost
    at org.apache.pig.backend.hadoop.executionengine.shims.HadoopShims.getCounters(HadoopShims.java:132)
    at org.apache.pig.tools.pigstats.mapreduce.MRJobStats.addCounters(MRJobStats.java:284)
    at org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil.addSuccessJobStats(MRPigStatsUtil.java:235)
    at org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil.accumulateStats(MRPigStatsUtil.java:165)
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:360)
    at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:280)

我在这里发现了这个问题,但在我的情况下,作业历史服务器已启动。如果运行netstat,我会发现:

tcp        0      0 0.0.0.0:10020           0.0.0.0:*               LISTEN      12073/java       off (0.00/0/0)

12073在哪里。。。

12073 pts/4    Sl     0:07 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Dproc_historyserver -Xmx1000m -Djava.library.path=/data/hadoop/hadoop/lib -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/data/hadoop/hadoop-2.3.0/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/data/hadoop/hadoop-2.3.0 -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,console -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/data/hadoop/hadoop/logs -Dhadoop.log.file=mapred-hadoop-historyserver-cluster-01.log -Dhadoop.root.logger=INFO,RFA -Dmapred.jobsummary.logger=INFO,JSA -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer

我尝试打开端口10200以防防火墙问题:

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:10020

... 但运气不好。
几分钟后,一些任务就随意地继续下一部分。
我正在使用hadoop2.3和pig0.14。
我的问题是:
1) 如果jhs运行在pig查找的同一端口上,那么pig无法连接到job history server(jhs)的可能原因是什么?
... 否则。。。
2) 有没有办法告诉pig停止连接jhs并继续执行任务?

afdcj2ne

afdcj2ne1#

配置 mapreduce.jobhistory.address 在hadoop/etc/hadoop/mapred-site.xml中,然后:

mapred --daemon start
omtl5h9j

omtl5h9j2#

使用以下命令在hadoop bin中启动history server

bin$ ./mr-jobhistory-daemon.sh start historyserver

使用以下命令运行pig

$pig
e5nszbig

e5nszbig3#

似乎大多数hadoop安装/配置指南都忽略了配置job history服务器。似乎pig尤其依赖于这个服务器。在多节点集群中,jhs的默认(本地)设置似乎也不起作用。
解决方案是在中的配置中添加服务器的主机名 mapred-site.xml 以确保它可以从其他机器访问(在我的文件版本中,行必须添加为“new”。。。以前没有设置。)

<property>
  <name>mapreduce.jobhistory.address</name>
  <value>cm:10020</value>
  <description>Host and port for Job History Server (default 0.0.0.0:10020)</description>
</property>

然后重新启动作业历史记录服务器:

mr-jobhistory-daemon.sh stop historyserver
mr-jobhistory-daemon.sh start historyserver

如果出现绑定异常(端口正在使用),则表示 stop 没用。或者
使用 ps ax | grep -e JobHistory 获取进程并用 kill -9 [pid] . 然后再次调用上面的start命令。或
在配置中使用其他端口
清管器应自动拾取新设置。运行一个Pig脚本和希望最好的。

gc0ot86w

gc0ot86w4#

解决方案是历史服务器未运行:

[user@vm9 sbin]$ ./mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /home/user/hadoop-2.7.7/logs/mapred-user-historyserver-vm9.out
[user@vm9 sbin]$ jps
5683 NameNode
6309 NodeManager
5974 SecondaryNameNode
8075 RunJar
6204 ResourceManager
8509 JobHistoryServer
5821 DataNode
8542 Jps
[user@vm9 sbin]$

现在pig可以正常运行,它将连接到作业历史服务器,dump命令工作正常。

相关问题