据我从hadoop教程中了解,它取输入文件的总大小,然后将它们划分为块/块,然后将这些块复制到不同的节点上。但是我想根据下面给定的要求实现数据分布模型-(a) 案例一:每个文件都被平等地划分到集群中的节点中——这样每个Map都可以访问表的这个分区。有可能吗?(b) 情况二:每个文件在两个或多个节点中完全复制,但不是所有节点。以便每个Map访问每个节点上表的某些部分。有可能吗?
ttp71kqs1#
hdfs不存储表,它存储文件。更高级别的项目提供“关系表”,比如hive。hive允许您对存储在hdfs上的表进行分区,请参阅hive教程。也就是说,您不应该将分区与集群中的节点数联系起来。节点来来去去,集群又长又缩。已分区的关系表按自然边界划分/存储桶,与集群大小无关。导入、导出和日常操作都在分区中扮演着一个角色(通常比集群大得多)。即使是单个表(文件)也可以很好地分布在集群的每个节点上。如果您想调整mr作业以获得最佳分割大小/位置,有很多方法可以做到这一点。你还有很多东西要读,你优化得太早了。
1条答案
按热度按时间ttp71kqs1#
hdfs不存储表,它存储文件。更高级别的项目提供“关系表”,比如hive。hive允许您对存储在hdfs上的表进行分区,请参阅hive教程。
也就是说,您不应该将分区与集群中的节点数联系起来。节点来来去去,集群又长又缩。已分区的关系表按自然边界划分/存储桶,与集群大小无关。导入、导出和日常操作都在分区中扮演着一个角色(通常比集群大得多)。即使是单个表(文件)也可以很好地分布在集群的每个节点上。
如果您想调整mr作业以获得最佳分割大小/位置,有很多方法可以做到这一点。你还有很多东西要读,你优化得太早了。