我正在配置单元中运行一个复杂的查询,当运行该查询时,开始在/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
所以我有两个问题:
这是否就是map reduce作业消耗本地磁盘空间而不是hdfs/tmp文件夹空间的原因,pig脚本通常就是这样?
在当前设置下,如何使配置单元以分布式模式运行?请注意,我在集群中使用的是mrv2,但是上面的选项令人困惑,因为它们似乎与mrv1相关。作为一个新手,我可能错了。
任何帮助都将不胜感激!
1条答案
按热度按时间whlutmcx1#
原来我错过了最基本的东西。在所有节点中将hadoop\u mapred\u home设置为/usr/lib/hadoop mapreduce后,所有问题都得到了解决。