繁体   English   中英

如何提高将数据从NON分区表加载到HIVE的ORC分区表中的性能

[英]How to improve performance of loading data from NON Partition table into ORC partition table in HIVE

我是Hive查询的新手,我正在寻找从Hive表检索数据的最佳实践。 我们已启用TeZ具有执行引擎并启用了矢量化。

我想从Hive表中进行报告,我从TEZ文档中了解到它可以用于实时报告。 场景来自我的WEB应用程序,我想显示UI上Hive表中的Hive Query Select *的结果,但是对于任何查询,即使hive表中有60 GB数据,在hive命令提示符下也至少花费20-60秒。

1)谁能告诉我如何通过查询Hive表来显示实时报告并在10-30秒内立即在UI上显示结果

2)我们发现的另一个问题是,最初我们有指向HDFS中Blob /文件的未分区表,当我们将数据从未分区表转储到ORC表时,它的大小为60 GB,具有200列表已分区),需要3个小时以上的时间,有没有一种方法可以提高将数据转储到ORC表中的性能。

3)当我们对带有存储分区的非分区表进行查询时,插入到配置单元表并比在ORC表上执行选择查询要花费更少的时间,但是在配置单元表中增加记录数时,ORC表的SELECT查询要比具有存储分区的表好。 有没有办法提高小型数据集的性能呢? 由于这是初始阶段,因此我们每个月都会将50 GB数据加载到Hive表中。 但是它会增加,我们希望提高将数据加载到Orc分区表中的性能。

4)TEZ支持交互式,更少延迟和对报表的深入支持。 如何在人的响应时间(即5到40秒)内使我的向下钻取报告从Hive(应该是交互式的)中获取数据。

我们正在测试4个节点,每个节点具有4个cpu内核,7 GB RAM和每个VM附加3个磁盘。

谢谢,马亨德

为了提高向ORC表插入数据的速度,您可以尝试使用以下参数

hive.exec.orc.memory.pool 
hive.exec.orc.default.stripe.size
hive.exec.orc.default.block.size 
hive.exec.orc.default.buffer.size
dfs.blocksize

此外,您可能会看到压缩是否也可以帮助您。 例如:

SET mapreduce.output.fileoutputformat.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;
SET hive.exec.compress.intermediate = true;

希望能帮助到你!

首先。 HIVE并非用于实时数据处理。 无论数据有多小,查询都将需要一段时间才能返回数据。

蜂巢的真正力量在于批处理大量数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM