据我从hadoop tuitorial了解,它需要输入文件的整体大小,然后将它们分成块/块,然后将这些块复制到不同的节点上。但是我想实现数据分发模型根据以下给出的要求 -
(a)案例一:每个文件被均等地划分到集群中的节点 - 这样每个映射都可以访问该表的分区。有可能吗?
(b)案例二:每个文件在两个或多个节点中完全复制,但不是所有节点。 这样每个映射都可以访问每个节点上表的某些部分。有可能吗?
答案 0 :(得分:1)
HDFS不存储表,它存储文件。更高级别的项目提供“关系表”,如Hive。 Hive允许您对存储在HDFS上的表进行分区,请参阅Hive Tutorial。
话虽如此,您不应该将分区与群集中的节点数联系起来。节点来来去去,集群增长和缩小。分区关系表按自然边界分区/桶,与簇大小无关。导入,导出,日常操作都在分区中起作用(通常比集群大小更大的角色)。即使单个表(文件)也可以在群集的每个节点上传播。
如果要调整MR作业以获得最佳分割大小/位置,有很多方法可以做到这一点。你还有很多东西需要阅读,你过早地进行了优化。