Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处
Hadoop内置了Yarn管理工具,我们只需要进行一定的配置就行了
编辑mapred-site.xml
hadoop为我们提供了模板文件,我们只需要根据模板文件做相应的修改就行了
进入hadoop文件夹下的etc文件夹
cp mapred-site.xml.template mapred-site.xml
然后编辑mapred-site.xml,vi mapred-site.xml,在configration节点下添加
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
然后编辑yarn-site.xml ,vi yarn-site.xml,在configration节点下添加
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
然后到hadoop的sbin目录下,启动yarn ,./start-yarn.sh
观察jps
但是此时执行示例程序仍然有可能是有问题的。例如我执行pi程序时出现了如下问题Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
这个错误是不同版本之间配置文件中的属性值兼容性不够导致的。有些属性必须要写在指定的配置文件中
这个错误需要在上述yarn-site.xml中加入一段缓存配置
yarn.nodemanager.local-dirs对应的路径必须在hdfs-site.xml中的hadoop.tmp.dir路径下,否则yarn会报错找不到缓存文件
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>hadoop.tmp.dir/nm-local-dir</value>
</property>
加入这段代码之后重启yarn,然后执行示例程序,即可看到正常使用