apache—hive在处理小型数据表插入时有问题吗?

z9smfwbn  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(295)

有人告诉我,任何配置单元作业都将消耗32gb内存或集群中的大量内存,而执行琐碎的行插入将导致创建许多小文件。
这是真的吗?
使用配置单元插入少量数据本身就是错误的吗?

of1yzvn4

of1yzvn41#

小文件可能是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

相关问题