什么是配置单元中的DataSet大小

时间:2015-05-27 06:46:13

标签: hive bigdata

我的HDFS中有.csv格式的1 TB数据。当我在Hive表中加载它时,数据的总大小。我的意思是会有2个相同数据的副本,即HDFS中的1个副本和Hive表中的其他副本吗? Plz澄清。提前谢谢。

2 个答案:

答案 0 :(得分:0)

这取决于您是否在Hive中创建内部表或外部表。

如果您在Hive中创建外部表,它将创建一个映射数据存储在HDFS中的位置,并且根本不会有任何重复。 Hive将自动选择存储在HDFS中的数据。

在此处阅读有关外部表格的更多信息:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ExternalTables

答案 1 :(得分:0)

如果您创建配置单元外部表,则为表提供HDFS位置,并将该数据存储到该特定位置。

创建配置单元内部表配置单元时,在/apps/hive/warehouse/目录中创建一个目录。 比如说,您的表名是table1,那么您的目录将是/apps/hive/warehouse/table1

此目录也是一个HDFS目录,当您将数据加载到表中的内部表时,它将进入其目录。

Hive在表及其对应的HDFS位置之间创建映射,因此当您从相应的映射目录读取数据时,它就会被读取。

因此,不会有与表及其HDFS位置对应的数据的重复副本。

但是,如果您的Hadoop集群Data Replication因子设置为3(默认复制),那么它将占用3TB集群磁盘空间(因为您有1TB数据),但不会对您的hive表数据产生任何影响。

请参阅以下链接,了解有关数据复制的更多信息。

http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html#Data+Replication