Hive 查询执行时间过长

Posted

技术标签:

【中文标题】Hive 查询执行时间过长【英文标题】:Hive Query Taking too long to execute 【发布时间】:2017-07-19 05:18:07 【问题描述】:

我正在使用 VM 播放器在本地系统上运行 HIVE。我已将 12 GB 专用于虚拟机,其余 4 GB 用于系统工作。我试图在 HIVE 中获取数据库列表,大约需要 63 秒才能给出结果。然后我尝试创建一个包含 4 列的表,但它既没有给我成功也没有给我失败的结果。你能帮我吗?

【问题讨论】:

发布您的查询和遇到的错误 我没有收到任何错误。屏幕停留在按 Enter 后。没有成功/失败输出。 【参考方案1】:

12GB 内存足以执行 create table 命令。请重新启动配置单元并在选择或创建数据库后再次尝试创建表。 请检查您的查询是否正确。和

CREATE TABLE IF NOT EXISTS 员工(eid int、name String、salary String、destination String) 行格式分隔 由‘\t’终止的字段;

如果您可以发布您正在使用的查询,将会很有帮助。

【讨论】:

我重新启动了 HIVE,在不同的终端上运行了查询,结果是一样的。画面冻结了!没有成功/失败。我的查询与您的查询类似,表中只有 2 列,这只是创建表的基本查询。【参考方案2】:

分配的空间应该没有问题,因为 12 GB 足以执行 Hive。

要知道建表是成功还是失败,可以执行以下操作之一:

在 hive 终端中使用以下命令之一:

a)set hive.metastore.warehouse.dir; b)describe formatted <table_name>; c)show create table <table_name>

hive-default.xmlhive-site.xml 具有 hive.metastore.warehouse.dir 属性。

一般是/usr/hive/warehouse

这些将显示配置单元数据的存储位置。

检查是否创建了适当的文件夹及其内容。

这样可以检查成功或失败。

希望对你有帮助。

【讨论】:

能否请您提及为什么答案被否决? 感谢 keshav 的回复,我运行了第一个条件。但我无法运行第二个,因为该表尚未在 HIVE 中创建。它不处理简单的创建表查询。服务已启动并运行! 您是否检查过仓库目录中是否创建了任何文件夹?

以上是关于Hive 查询执行时间过长的主要内容,如果未能解决你的问题,请参考以下文章

SQL 查询执行时间过长。需要提高查询的性能

MongoDB 查询执行时间过长

MySQL innoDB:查询执行时间过长

小表上的简单 SQL 查询执行时间过长

oracle olap 查询执行时间过长

Mongodb 查询执行耗时过长