2014-09-28 48 views
0

我们有两台服务器的Haddop/Hive集群,每台服务器上Hive数据库使用〜160GB磁盘空间,但Hadoop数据目录为〜850GB。典型的Hive和Hadoop磁盘Spaware使用情况

这是正常的,Hive数据库大小与Hadoop数据目录大小之间的典型比例是多少?

+0

您是否在配置单元中创建了内部表或外部表?如果发生混淆,请参考http://stackoverflow.com/questions/17038414/difference-between-hive-internal-tables-and-external-tables – 2014-09-29 05:43:08

回答

2

这完全取决于您要存储的数据类型。您在Hive数据库中存储的数据实际上只是hadoop数据目录的一部分。如果你只在Hadoop中存储Hive表的数据,那么这个比例将是1:1。

Hive数据库大小与Hadoop数据目录大小之间没有这种关系。 HDFS是一个超级集合,其中包含Hive数据库的所有数据都被存储。

+0

在Mindaugus Case/dfs/dn /吃最多的空间。而.db文件只有150GB大。我们可以使/ dfs/dn更小吗?是否存储相同的信息? – Ploetzeneder 2014-09-29 05:43:36

2

/dfs/dn是指数据节点的大小,即HDFS的大小。这包括hive表占用的空间以及hdfs中的其他内容。

如果您使用hadoop至只有存储配置单元数据,请考虑创建external tables。这些将仅存储元数据并重用已存储在hdfs文件夹中的数据,而内部表将复制数据以及元数据。

+0

如果使用外部表,对速度有影响吗? – Ploetzeneder 2014-09-29 07:47:41

+0

没有速度差异.Hive只是作为一个框架在平面结构化数据上运行map-reduce,而不管它在HDFS上的存储位置。在内部表中,配置单元选择数据并将其放置在其选择的位置以供后续处理。在外部表格中,您特别告诉配置单元在哪里查找数据。 – 2014-09-29 08:41:45

+0

好的,如果我改变表是否释放/ dfs/dn? – Ploetzeneder 2014-09-29 10:22:04

相关问题