【发布时间】:2015-10-12 14:44:52
【问题描述】:
我已经安装了Apache Hadoop 2.x 和 5 个异构节点,其中一个节点完全专用于 NameNode。
我正在使用以下命令将我的输入文件放入HDFS。
$ hdfs dfs -put /home/hduser/myspace/data /user/hduser/inputfile
HDFS 在三个DataNodes (DN) 上复制此输入文件,这意味着第四个DataNode 没有输入块。如果我使用 8 个映射器(通过使用 NLineInputFormat() 方法设置拆分大小),那么这 8 个映射器将分配给所有 4 个 DN。我认为应该是。在这种情况下,来自其他 DN 的数据块将移动到第 4 个 DN,由分配给它的映射器计算,这会增加整体执行时间。
我的问题是:
我们能否设法在每个 DN 上放置数据块,这样就无需为特定 DN 上的映射器移动数据。它可以通过hdfs的“put”命令来完成吗?
同样在异构集群的情况下,我们可以根据节点的计算能力将不同大小的数据放在不同的DN上吗?
【问题讨论】:
标签: java hadoop mapreduce hdfs bigdata