【问题标题】:About locality issue and chunk management in Hadoop关于 Hadoop 中的局部性问题和块管理
【发布时间】:2013-08-13 13:33:24
【问题描述】:

我一直在做我的毕业设计,我们正在尝试的主题 实现是在 Hadoop 上进行一些图像搜索。我们正在使用 OpenCV 库 图像处理。到目前为止,我们已经得到了一个可以工作的原型,但是效率 没有达到我们的预期。

现在我们希望确保我们的映射作业正确分配给数据所在的从节点。(即,我们希望分配给该节点的作业仅处理确切节点上的块)在我的理解中,这意味着我需要知道我的数据的每个块的下落,以及关于块的一些其他信息。(例如,哪个块分配给哪个从节点......等)我在 Http 管理界面上找到了一些信息。(使用的那个默认为 50030 端口) 但这还不够,收集我需要的信息也很耗时。那么,有什么办法可以看到这些信息呢?任何日志文件或 API?

而且,如果我们对 Hadoop 调度程序分配任务的方式不满意,是否有办法干扰每个单独块的分配方式?或者 Hadoop 如何拆分输入?我知道手动完成最初由调度程序完成的所有工作将是一场噩梦,但我希望将此作为我们最后的手段。

长话短说,

  1. 我可以通过 Hadoop 的日志/API 获取任何块级信息吗?比如有多少块,块的位置……等等,jobtracker的Http接口上的信息是不够的。
  2. 有没有办法干扰作业分配、块分配以及 Hadoop 拆分输入的方式?

提前致谢。

【问题讨论】:

  • 块是什么意思?
  • Hadoop 会将您存储在其上的数据拆分为多个片段,并将它们放置在不同的从节点上,在原始 Google 文件系统论文中它们被称为“块”。
  • 知道了,它们在 Hadoop 世界中被称为块。想在回答之前确保我按照你的说法是正确的

标签: hadoop chunks


【解决方案1】:
  1. 您可以通过代码或命令行获取块/块信息。命令行信息见How to check the distributed data over hdfs

  2. 是的,可能。您可以覆盖InputSplit/RecordReader 来修改输入的拆分方式,但您可能无法轻松地完成您想要的操作。

【讨论】:

  • 抱歉,耽搁了。谢谢,您的链接在这里解决了我们的部分问题。
猜你喜欢
  • 2014-01-29
  • 2011-08-10
  • 2014-02-15
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多