HIVE表是否在Hadoop集群的所有节点上重复

时间:2015-09-14 20:24:39

标签: hadoop hive hiveql

当我创建一个HIVE表时,是否在Hadoop集群的所有节点上创建了表?当我将数据加载到表中时,数据是否会在所有这些节点上复制?

我的猜测是肯定的?

2 个答案:

答案 0 :(得分:0)

Hive只是null之上的元数据层。因此,要回答您的问题,您只需要考虑复制如何在hdfs内工作。

关于“在每个节点上”的问题并不是hdfs复制如何工作的正确心理模型。 hdfs复制完全了解/关心hive表。它只知道数据块。

hive表的每个数据块都有K个副本 - 其中k是为给定配置单元表配置的复制因子。数据块与特定节点的关联由hdfs的本地/机架/集群位置策略驱动。

答案 1 :(得分:0)

  

当我创建一个HIVE表时,表是否会在所有节点上创建   Hadoop集群?

Hadoop数据节点彼此的镜像。这些只是数据存储单元,其存储和元由NameNode管理。

您的hive表将根据复制因子集进行复制。如果复制因子为1,则只有一个副本。

  

当我将数据加载到表中时,数据是否会被复制   跨所有这些节点?

正如我之前指出的那样,hadoop datanode不是彼此的镜像,因此它们都不包含所有数据。它们只包含群集中已定义数量的数据副本(基于复制因子集)。

您加载的数据会根据复制因子(在NameNode决定的节点上)进行复制。