【问题标题】:Distcp to webHDFS brings down job trackerDistcp 到 webHDFS 降低了作业跟踪器
【发布时间】:2013-11-14 22:28:33
【问题描述】:

我们在尝试使用 distcp 将大量数据泵送到另一个集群时遇到了一个奇怪的问题。

要给出一些数字,

数据大小 = 320GB 映射器数量 = ~70 我们集群中的节点总数 82 src 集群:hadoop 0.20 目标集群:hadoop 2.0.2

当我们开始这项工作时,所有映射器都成功完成,但最后一个需要太长时间,当它完成/失败时,它基本上会冻结作业跟踪器近 15 分钟,然后重新启动所有任务跟踪器,从而重新启动所有当时在集群中运行的作业。

我们有多个 distcp 作业将数据传输到 S3 以及具有相同 hadoop 设置的其他集群,并且没有遇到这个问题。这个过程和其他的唯一区别就是这里我们使用的是webhdfs,webhdfs是瓶颈吗?

我们还尝试减小文件大小,检查网络带宽是否饱和,加载机器,但仍然无法解决这个问题。

另外,当两个hadoop版本不相同时,有没有其他的数据传输方式而不是使用webhdfs

谢谢

【问题讨论】:

  • 长期运行的地图任务、托管任务跟踪器和作业跟踪器的日志中是否有任何条目?
  • @ChrisWhite :当job tracker和task tracker冻结时,大约需要15分钟才能恢复..在此期间JT和TT都没有日志。

标签: hadoop mapreduce hdfs cloudera webhdfs


【解决方案1】:

在设置 ganglia 以收集统计信息并使用 jconsole 后,我们将问题缩小到阻塞线程。

决议是增加

mapred.job.tracker.handler.count 从当前值 64 到 128

我们对该问题的最佳假设是,所有 Distcp 映射器倾向于同时完成,从而在清理过程中阻塞了许多线程,并将 Job tracker 冻结了 10-15 分钟

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2012-10-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多