0

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

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

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

使长话短说,

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

提前致谢。

4

1 回答 1

0
  1. 您可以通过代码或命令行获取块/块信息。有关命令行信息,请参阅如何检查 hdfs 上的分布式数据。

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

于 2013-08-14T15:34:18.123 回答