蜂巢在哪里存放餐桌?

时间:2015-03-26 11:45:24

标签: hive

我是Hadoop的新手,我刚刚开始研究Hive,我的理解是它提供了一种查询语言来处理HDFS中的数据。使用HiveQl,我们可以创建表并从HDFS将数据加载到其中。

所以我的问题是:这些表存储在哪里?具体来说,如果我们的HDFS中有100 GB文件,并且我们想要从该数据中创建一个hive表,该表的大小和存储位置是什么?

如果我对这个概念的理解是错误的,请纠正我..

2 个答案:

答案 0 :(得分:5)

如果表格为100GB,您应该考虑使用Hive外部表格(而不是"托管表格",差异,请参阅this)。

使用外部表,数据本身仍将存储在您指定的文件路径中的HDFS上(请注意,只要文件目录具有相同的结构,您可以指定文件目录),但Hive将创建一个它在元商店中的映射,而托管表将存储数据"在Hive"。

当您删除托管表时,它会删除基础数据,而不是删除一个只从引用该数据的元存储中删除元数据的配置单元外部表。

无论哪种方式,您只使用100GB的用户观看,并正在利用HDFS'虽然数据重复,但仍然具有鲁棒性。

答案 1 :(得分:1)

hive将在hdfs上创建一个目录。如果你没有指定任何位置,它将在hdfs.after load命令的/ user / hive / warehouse文件夹中创建一个目录,将文件移动到/ warehouse / tablename文件夹。你可以如果它包含分区(如果文件是分区的),也指向hdfs文件夹。或使用外部表概念。