gpt4 book ai didi

hadoop - HIVE中如何提高从非分区表加载数据到ORC分区表的性能

转载 作者:可可西里 更新时间:2023-11-01 15:00:59 24 4
gpt4 key购买 nike

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

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

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

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

3)当我们使用分桶查询非分区表时,插入到hive表和查询比ORC表上的select查询花费的时间更少,但是hive表中的记录数增加ORC表的SELECT查询比表更好与水桶。有没有办法提高小型数据集的性能。由于是初始阶段,我们每个月都会将 50 GB 数据加载到 Hive 表中。但它可以增加,我们希望提高将数据加载到 Orc 分区表中的性能。

4) TEZ 支持交互式、低延迟和向下钻取报告支持。如何启用我的向下钻取报告以在人类响应时间内(即 5-40 秒)从 Hive(应该是交互式的)获取数据。

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

谢谢,马亨德

最佳答案

为了提高向ORC表插入数据的速度,你可以试试下面的parameters :

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;

希望对您有所帮助!

关于hadoop - HIVE中如何提高从非分区表加载数据到ORC分区表的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com