关于Hadoop中的位置问题和块管理

时间:2013-08-13 13:33:25

标签: hadoop chunks

我一直致力于我的毕业设计,这是我们正在尝试的主题 实现是在Hadoop上进行一些图像搜索。我们正在使用OpenCV库 图像处理。到目前为止,我们已经得到了一个原型工作,但效率 不符合我们的期望。

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

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

长话短说,

  1. 我可以通过Hadoop的Logs / API获取任何块级信息吗?就像那里有多少块,块的位置等等,关于jobtracker的Http接口的信息是不够的。
  2. 有没有办法干扰作业分配,块分配以及Hadoop拆分输入的方式?
  3. 提前致谢。

1 个答案:

答案 0 :(得分:0)

  1. 您可以通过代码或命令行获取块/块信息。有关命令行信息,请参阅How to check the distributed data over hdfs

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