我比较了 Hadoop 2 和 Hadoop 3 的关于伪分布式的部署文档,其中一个区别是 Hadoop 3 要求设置mapreduce.application.classpath
,而该值中使用了环境变量HADOOP_MAPRED_HOME
。
实际上,我在没有手动设置HADOOP_MAPRED_HOME
的情况下,里面的 example 还是能够正常运行。所以 Hadoop 内部是如何得到HADOOP_MAPRED_HOME
的默认值的?
此外,即使是在 Hadoop 2 中,配置文件里面也有mapreduce.application.classpath
这个属性,只是文档里面没有让设置。那么,究竟是什么场景下需要用到这个值?
1
e583409 2021-03-22 09:51:34 +08:00
我本地 mac 电脑和线上 3 台服务器配置 给你参考一下:
<property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOP_HOME}</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> |