如何将文件放到特定节点?

时间:2013-06-24 14:41:46

标签: hadoop hdfs

是否可以告诉HDFS 存储特定文件的位置?

用例

我刚刚将第1批文件加载到HDFS中,并希望在这些数据上运行作业/应用程序。但是,我还有第2批仍然需要加载。如果我可以在第一批上运行作业/应用程序,比如从1到10的节点,并将新数据加载到节点(例如11到20,完全并行),那将是很好的。

最初我认为NameNode federation(Hadoop 2.x)就是这样做的,但看起来联邦只会拆分命名空间,而DataNodes仍然为所有连接的NameNode提供块。

那么,有没有办法控制HDFS中的数据分发?它有意义吗?

1 个答案:

答案 0 :(得分:7)

从技术上讲,你可以,但我不会。

如果您想完全控制数据的去向,可以扩展BlockPlacementPolicy(请参阅how does hdfs choose a datanode to store)。这不容易做到,我不推荐它。

您可以采取措施尽量减少两组节点之间的流量,并通过一些巧妙的设置来利用机架感知。