当我在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)
为什么会这样?
答案 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
。