【问题标题】:never ending job in mapreducemapreduce 永无止境的工作
【发布时间】:2015-06-30 14:00:20
【问题描述】:

我已经在我的main 方法中设置了一些 MapReduce 配置

configuration.set("mapreduce.jobtracker.address", "localhost:54311");
configuration.set("mapreduce.framework.name", "yarn");
configuration.set("yarn.resourcemanager.address", "localhost:8032");

现在,当我启动 mapreduce 任务时,会跟踪进程(我可以在集群仪表板中看到它(监听端口 8088)),但进程永远不会完成。它在以下行仍然被阻止:

15/06/30 15:56:17 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/06/30 15:56:17 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032
15/06/30 15:56:18 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
15/06/30 15:56:18 INFO input.FileInputFormat: Total input paths to process : 1
15/06/30 15:56:18 INFO mapreduce.JobSubmitter: number of splits:1
15/06/30 15:56:18 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1435241671439_0008
15/06/30 15:56:19 INFO impl.YarnClientImpl: Submitted application application_1435241671439_0008
15/06/30 15:56:19 INFO mapreduce.Job: The url to track the job: http://10.0.0.10:8088/proxy/application_1435241671439_0008/
15/06/30 15:56:19 INFO mapreduce.Job: Running job: job_1435241671439_0008

有人有想法吗?

编辑:在我的yarn nodemanager 日志中,我有这条消息

org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Event EventType: KILL_CONTAINER sent to absent container container_1435241671439_0003_03_000001
2015-06-30 15:44:38,396 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Event EventType: KILL_CONTAINER sent to absent container container_1435241671439_0002_04_000001

编辑 2:

我在yarn manager 日志中也有一些更早发生的异常(对于先前的 mapreduce 调用):

org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [0.0.0.0:8040] java.net.BindException: Address already in use; For more details see: 

解决方案:我杀死了所有守护进程并再次重新启动hadoop!事实上,当我运行jps 时,我仍然得到hadoop daemons,尽管我已经阻止了它们。这是HADOOP_PID_DIR 的不匹配

【问题讨论】:

  • this 可能重复?
  • @Mena 我的问题不是警告,因为它总是出现并没有特殊后果
  • 也不抱太大希望。也许是工作本身的逻辑?
  • @Mena 我已经尝试了一些 WordCount 示例,但我遇到了同样的问题!
  • @Mena 我刚刚更新了我的帖子

标签: java hadoop configuration mapreduce


【解决方案1】:

yarn的nodemanage的默认端口是8040,报错说这个端口已经被使用了。停止所有hadoop进程,如果你没有数据,可以格式化namenode一次,然后再次运行job。从您的两次编辑来看,问题肯定出在节点管理器上

【讨论】:

  • 谢谢,但事实上我意识到我运行脚本来停止所有守护进程。但是当我运行jps 时,仍然出现。我怎样才能阻止他们?
  • 您可以使用 bin/stop-all.sh(或 stop-dfs.sh 和 stop-yarn.sh)。如果问题仍然存在,还要格式化名称节点(小心,因为您会丢失数据)。一些帮助here
【解决方案2】:

解决方案:我杀死了所有的守护进程并重新启动了hadoop!事实上,当我运行jps 时,虽然我已经停止了hadoop 守护程序,但我仍然得到它们。这与 HADOOP_PID_DIR 的不匹配有关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多