Hadoop独立实例在执行MR作业期间退出,日志中出现ExpiredTokenRemover错误(成功执行少量作业后)

时间:2016-07-24 01:46:35

标签: hadoop mapreduce

Hadoop / HDFS进程退出(所有jps deamons),并且在几个作业成功完成后,用户在运行MR作业时从终端抛出。

错误: 2016-07-23 17:56:16,258错误org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager:ExpiredTokenRemover收到java.lang.InterruptedException:睡眠中断

日志文件: 的 /usr/local/hadoop/logs/yarn-hduser-resourcemanager-KMUbLptp.log

2016-07-23 17:56:14,044 INFO org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl: container_1469316920580_0007_01_000002 Container Transitioned from ACQUIRED to RUNNING
2016-07-23 17:56:14,663 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.AppSchedulingInfo: checking for deactivate of application :application_1469316920580_0007
2016-07-23 17:56:16,201 ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: RECEIVED SIGNAL 15: SIGTERM
2016-07-23 17:56:16,258 ERROR org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager: ExpiredTokenRemover received java.lang.InterruptedException: sleep interrupted
2016-07-23 17:56:16,259 INFO org.mortbay.log: Stopped HttpServer2$SelectChannelConnectorWithSafeStartup@0.0.0.0:8088
2016-07-23 17:56:16,284 ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: RECEIVED SIGNAL 15: SIGTERM
2016-07-23 17:56:16,360 INFO org.apache.hadoop.ipc.Server: Stopping server on 8032
2016-07-23 17:56:16,361 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server listener on 8032
2016-07-23 17:56:16,361 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server Responder
2016-07-23 17:56:16,362 INFO org.apache.hadoop.ipc.Server: Stopping server on 8033

此错误仅在作业提交终端下面的行之后发生:

16/07/23 17:56:13 INFO mapreduce.Job:  map 0% reduce 0%

环境:

Ubuntu Desktop 16 LTE,jdk1.8.92& Hadoop 2.7.2

我认为可能会有一些超时,如果我重新启动我的机器和它可以工作重新开始。如果有人遇到过这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

我观察到了完全相同的行为但是,“幸运的是”,我在Docker容器中有100%的再现率。所有Hadoop进程在进程完成或取消后收到SIGTERM,以不期望的(但有序的)方式关闭它们。

在我将图像的Ubuntu版本从14.04更改为16.04后,我开始发生这种情况,我决定查看SIGTERM的来源(使用带有https://sourceware.org/systemtap/examples/process/sigmon.stp的systemtap),结果发现NodeManager正在启动/ bin / kill并瞄准自己。鉴于只有Ubuntu版本发生了变化,而不是Hadoop版本,我在Ubuntu 16.04下搜索已知的kill问题并最终得到了这个 - https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1610499 - bug报告。事实证明,每当NodeManager杀死Ubuntu 16.04中的容器时,它都可以删除同一用户拥有的所有进程。

我通过使用Ubuntu 14.04中的版本替换/ bin / kill解决了这个问题。不理想,但很容易应用于Docker设置。或者,您必须等待(或提交:)修复或考虑使用较旧的Ubuntu版本(或其他发行版)。希望有所帮助!