gpt4 book ai didi

mapreduce - 是否可以通过编写单独的 mapreduce 程序来并行执行 Hive 查询?

转载 作者:行者123 更新时间:2023-12-01 01:18:40 28 4
gpt4 key购买 nike

我问了一些关于提高 Hive 查询性能的问题。一些答案与映射器和化简器的数量有关。我尝试了多个映射器和化简器,但在执行过程中没有发现任何差异。不知道为什么,可能是我没有以正确的方式去做,或者我错过了别的东西。

我想知道是否可以并行执行 Hive 查询?
我的意思是,通常查询在队列中执行。
例如:
查询1

查询2

查询3

.
.
.
n

执行时间太长,我想减少执行时间。

我需要知道我们是否在 Hive JDBC 程序中使用 mapreduce 程序,那么是否可以并行执行它?
不知道这是否可行,但这是我要实现的目标?

我在下面恢复我的问题:

1) 如果可以并行运行多个 Hive 查询,是否需要多个 Hive Thrift Server?

2) 是否可以打开多个 Hive Thrift 服务器?

3)我认为不可能在同一个端口上打开多个 Hive Thrift Server?

4) 我们可以在不同的端口上打开多个 Hive Thrift Server 吗?

请为此建议我一些解决方案。如果您有任何其他选择,我也会尝试。

最佳答案

您可能已经知道,Hive 是 Hadoop 和 Map-reduce 的类 SQL 前端。 Hive 上的任何重要查询都会被编译为 Map-Reduce 并在 Hadoop 上运行。 Map-reduce 是一个并行处理框架,因此您的每个 Hive 查询都将并行运行和处理数据。
Hive 默认使用 FIFO 调度器在 Hadoop 上调度作业,因此,在给定时间只能执行一个 Hive 查询,并且在第一个查询完成时将执行下一个查询。在大多数情况下,我会建议人们优化单个 Hive 查询,而不是并行化多个 Hive 查询。如果您倾向于并行化 Hive 查询,这可能表明您的集群使用效率低下。要进一步分析 Hive 查询的性能和使用情况,您可以安装分布式监控系统,如 Ganglia用于监控集群的使用情况(Amazon EMR 也支持它)。

长话短说,您不必编写 map-reduce 程序;这就是您首先使用 Hive 的目的。但是,如果您可能了解 Hive 可能不了解的数据,则可能会导致 Hive 查询的性能欠佳。例如,您的数据可能按某些列排序,而 Hive 可能不知道该信息。在这种情况下,如果您无法在 Hive 中设置额外的元信息,那么编写一个 map-reduce 作业来考虑这些额外信息并可能为您提供更好的性能可能是有意义的。在大多数情况下,我发现 Hive 的性能与对应于 Hive 查询的 Map-reduce 作业相当。

关于mapreduce - 是否可以通过编写单独的 mapreduce 程序来并行执行 Hive 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10550898/

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