首页 > 解决方案 > 如何为 hive 查询子作业设置 mapreduce 作业名称?

问题描述

我们的 hive 查询创建了 9 个 map-reduce 作业和 17 个阶段(当我运行 EXPLAIN 命令时,输出显示 17 个阶段和阶段依赖项)。每个儿童工作都有相同的mapreduce.job.name

为了区分这些子作业,有什么方法可以设置mapreduce.job.name内部配置单元查询,以便对于每个作业,我可以看到作业的阶段。所有 9 个子作业的现有作业名称:

Job.Name : hive_query_map_reduce_job

有没有办法让我在工作跟踪器中获取工作名称

Job.Name : hive_query_map_reduce_job_stage_1
Job.Name : hive_query_map_reduce_job_stage_2
Job.Name : hive_query_map_reduce_job_stage_3
...

我参考了如何控制蜂巢作业名称但保留阶段信息?但它没有按预期工作。我尝试mapreduce.job.name在查询中设置多个具有不同值的位置,但所有子作业都采用我分配的最后一个值。假设我的查询文件是 hiveQuery.q

蜂巢查询.q

设置 hiveconf:mapreduce.job.name="唯一名称 1"。
... --
一些查询语句
...
设置 hiveconf:mapreduce.job.name="unique name 2"。
... --
一些查询语句
...
设置 hiveconf:mapreduce.job.name="unique name 3"。

对于上述查询,所有 9 个 mapreduce 作业都"unique name 3"作为作业名称。我也尝试过hive.query.namehive.query.string但那些没有帮助。这可能吗?有谁知道如何实现这一目标?

标签: hivemapreducehive-query

解决方案


推荐阅读