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

时间:2015-08-02 19:32:47

标签: hadoop hive cloudera-cdh mrv2

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

所以我对此有两个问题:

  1. 这可能是map-reduce作业占用本地磁盘空间而不是hdfs / tmp文件夹的原因,就像通常使用pig脚本一样吗?
  2. 如果在当前设置下如何让Hive在分布式模式下运行?请注意我在群集中使用MRV2,但上述选项令人困惑,因为它们似乎与MRV1相关。我在这里可能是错的,是一个新手。
  3. 非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

事实证明,我错过了必需品。在所有节点中将HADOOP_MAPRED_HOME设置为/ usr / lib / hadoop-mapreduce之后,所有问题都得到了解决。