【发布时间】:2015-08-07 03:27:39
【问题描述】:
我在 hive 中运行一个复杂的查询,运行时开始使用 /tmp 文件夹中的大量本地磁盘空间,并最终以空间错误结束,因为 /tmp 文件夹完全被中间映射填满-由于提到的查询减少了结果(/tmp 文件夹是在单独的分区中创建的,有 100 GB 的空白空间)。运行时说:
Execution completed successfully
MapredLocal task succeeded
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator
Job running in-process (local Hadoop)
正如您在上面看到的,Hive 以某种方式在本地模式下运行。在网上做了一些研究后,我检查了一些相关参数,结果如下:
hive> set hive.exec.mode.local.auto;
hive.exec.mode.local.auto=false
hive> set mapred.job.tracker;
mapred.job.tracker=local
hive> set mapred.local.dir;
mapred.local.dir=/tmp/hadoop-hive/mapred/local
所以我对此有两个问题:
- 这可能是 map-reduce 作业消耗本地磁盘空间而不是 hdfs /tmp 文件夹上的空间的原因吗,就像 pig 脚本的典型情况一样?
- 在给定当前设置的情况下,如何使 Hive 在分布式模式下运行?请注意,我在集群中使用 MRV2,但上述选项令人困惑,因为它们似乎与 MRV1 相关。作为新手,我在这里可能是错的。
任何帮助将不胜感激!
【问题讨论】:
标签: hadoop hive cloudera-cdh mrv2