Hive以本地模式运行,占用/tmp本地磁盘空间过多



我正在hive中运行一个复杂的查询,当运行时,开始使用/tmp文件夹中的大量本地磁盘空间,并最终以空间错误结束,因为/tmp文件夹完全填满了中间map-reduce结果,因为提到的查询(/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

我有两个问题:

  1. 这可能是map-reduce作业消耗本地磁盘空间而不是hdfs/tmp文件夹的原因吗,就像pig脚本的典型情况一样?
  2. 如何使Hive在分布式模式下运行,给定当前设置?请注意,我在集群中使用的是MRV2,但上面的选项令人困惑,因为它们似乎与MRV1相关。作为一个新蜜蜂,我可能在这里错了。

任何帮助将非常感激!

事实证明我错过了最基本的东西。在所有节点中将HADOOP_MAPRED_HOME设置为/usr/lib/hadoop-mapreduce后,所有问题都解决了。

相关内容

  • 没有找到相关文章

最新更新