配置单元在处理小数据表插入时是否有问题



我被告知,任何配置单元作业都会消耗32 GB内存或集群中的大量内存,而进行琐碎的行插入会导致创建许多小文件。

这是真的吗?

使用Hive插入少量数据本身就是错误的吗?

小文件本身可能是Hadoop的一个问题。当您在配置单元中插入单独的行时,每一行都将保存到不同的文件中。每次插入操作需要几秒钟的时间。您可以在下面的示例中看到。我在配置单元表中插入了3行,它创建了3个2字节的文件。您应该避免在配置单元中插入少量数据。它可能会导致namenode内存不足等问题,因为文件的元数据将存储在内存中。

create table testing (t int);
insert into table testing values (1);
insert into table testing values (2);
insert into table testing values (3);
dfs -ls /apps/hive/warehouse/testing;
-rwxrwxrwx   1 root hdfs          2 2015-12-08 23:59 /apps/hive/warehouse/testing/000000_0
-rwxrwxrwx   1 root hdfs          2 2015-12-08 23:59 /apps/hive/warehouse/testing/000000_0_copy_1
-rwxrwxrwx   1 root hdfs          2 2015-12-08 23:59 /apps/hive/warehouse/testing/000000_0_copy_2

相关内容

  • 没有找到相关文章

最新更新