始终配置单元作业运行进程内本地hadoop

col17t5w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(300)

在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)

为什么会这样?

b1uwtaje

b1uwtaje1#

如hive-2585所述,继续 Hive 假设 metastore 正在运行 local mode 如果配置属性 hive.metastore.urisunset ,和 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 ; 设置 hive.metastore.uris 足以指示您正在使用远程元存储。
编辑:
从0.7版开始,hive还支持在本地模式下自动运行map reduce作业的模式。相关选项包括 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 如果对后续作业的输入大大减少(由于先前作业的减少/过滤), jobs may be run locally .
参考:hive入门

相关问题