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

zpjtge22  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(424)

有没有可能告诉hdfs在哪里存储特定的文件?
用例
我刚刚将一批文件加载到hdfs中,并希望对这些数据运行作业/应用程序。但是,我还有第2批仍在加载中。如果我能在第一批上运行作业/应用程序,比如说,在1到10个节点上运行,并将新数据完全并行地加载到11到20个节点上,那就太好了。
起初我认为namenode联合(hadoop2.x)确实做到了这一点,但看起来联合只是拆分名称空间,而datanodes仍然为所有连接的namenodes提供块。
那么,有没有一种方法可以控制hdfs中数据的分布呢?这有意义吗?

zdwk9cvp

zdwk9cvp1#

严格来说,你可以,但我不会。
如果您想完全控制数据的去向,可以扩展 BlockPlacementPolicy (请参见hdfs如何选择要存储的数据节点)。这不容易做到,我不推荐。
您可以采取一些措施,通过一些巧妙的设置,使两组节点之间的通信量最小化,从而使机架感知发挥优势。

相关问题