【发布时间】:2013-08-13 13:33:24
【问题描述】:
我一直在做我的毕业设计,我们正在尝试的主题 实现是在 Hadoop 上进行一些图像搜索。我们正在使用 OpenCV 库 图像处理。到目前为止,我们已经得到了一个可以工作的原型,但是效率 没有达到我们的预期。
现在我们希望确保我们的映射作业正确分配给数据所在的从节点。(即,我们希望分配给该节点的作业仅处理确切节点上的块)在我的理解中,这意味着我需要知道我的数据的每个块的下落,以及关于块的一些其他信息。(例如,哪个块分配给哪个从节点......等)我在 Http 管理界面上找到了一些信息。(使用的那个默认为 50030 端口) 但这还不够,收集我需要的信息也很耗时。那么,有什么办法可以看到这些信息呢?任何日志文件或 API?
而且,如果我们对 Hadoop 调度程序分配任务的方式不满意,是否有办法干扰每个单独块的分配方式?或者 Hadoop 如何拆分输入?我知道手动完成最初由调度程序完成的所有工作将是一场噩梦,但我希望将此作为我们最后的手段。
长话短说,
- 我可以通过 Hadoop 的日志/API 获取任何块级信息吗?比如有多少块,块的位置……等等,jobtracker的Http接口上的信息是不够的。
- 有没有办法干扰作业分配、块分配以及 Hadoop 拆分输入的方式?
提前致谢。
【问题讨论】:
-
块是什么意思?
-
Hadoop 会将您存储在其上的数据拆分为多个片段,并将它们放置在不同的从节点上,在原始 Google 文件系统论文中它们被称为“块”。
-
知道了,它们在 Hadoop 世界中被称为块。想在回答之前确保我按照你的说法是正确的