总是Hive Job在进程中运行本地Hadoop

时间:2015-10-24 07:20:06

标签: hadoop hive

当我在hive-site.xml中设置此属性时

<property>
  <name>hive.exec.mode.local.auto</name>
  <value>false</value>
</property>

Hive始终在本地运行hadoop作业。

Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 55
Job running in-process (local Hadoop)

为什么会这样?

1 个答案:

答案 0 :(得分:2)

正如HIVE-2585中所述,前进 Hive 会假设 metastore 正在 {{ 1}} 如果配置属性 local mode hive.metastore.uris unset

确保在 will assume remote mode otherwise

中设置了以下属性
Hive-site.xml

不再支持 <property> <name>hive.metastore.uris</name> <value><URIs of metastore server>:9083</value> </property> <property> <name> hive.metastore.local</name> <value>false</value> </property> 属性 hive.metastore.local ;设置 as of Hive 0.10 足以表明您正在使用远程Metastore。

修改

从0.7版开始 Hive 还支持在本地模式下自动运行地图缩减作业的模式。相关选项包括 hive.metastore.uris hive.exec.mode.local.auto hive.exec.mode.local.auto.inputbytes.max

hive.exec.mode.local.auto.tasks.max

请注意,默认情况下禁用此功能。如果已启用, hive> SET hive.exec.mode.local.auto=false; 会在查询中分析每个 Hive 的大小,并可以运行 map-reduce job 如果满足以下 locally

thresholds

适用于针对小型数据集的查询,或针对多个 1. The total input size of the job is lower than: hive.exec.mode.local.auto.inputbytes.max (128MB by default) 2. The total number of map-tasks is less than: hive.exec.mode.local.auto.tasks.max (4 by default) 3. The total number of reduce tasks required is 1 or 0. 的查询,其中后续作业的输入要小得多(因为减少/过滤)在之前的工作中), map-reduce jobs

参考:Hive Getting started