启动YARN并运行MapReduce程序

备注:此处的hadoop版本是3.1.4

一、配置集群

1.1、配置yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
       <name>yarn.resourcemanager.hostname</name>
       <value>k8smaster</value>
</property>

备注:k8smaster在hosts文件中需要指定为具体ip,不然在宿主机访问不到。

1.2、配置mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

二、启动集群

注意:启动前必须保证NameNode和DataNode已经启动

2.1、启动ResourceManager

yarn --daemon start resourcemanager

2.2、启动NodeManager

yarn --daemon start nodemanager

2.3、查看时启动成功

 2.4、web页面访问

http://k8smaster:8088/

 2.5、测试wordcount

 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /home/yzh/hadoop/user/input /home/yzh/hadoop/user/output

此处wordcount后面的路径都是hdfs文件系统路径。

如果需要删除hdfs文件系统的路径,则执行下面的命令

hdfs dfs -rm -r /home/yzh/hadoop/user/output

2.6、遇到的问题

 

 解决:在命令行输入:hadoop classpath

 把上述输出的值添加到yarn-site.xml文件对应的属性 yarn.application.classpath下面,eg:

   <property>
        <name>yarn.application.classpath</name>
        <value>具体的hadoop classpath</value>
</property>

  

mapred-site.xml中设置map和reduce任务的内存配置如下:(value中实际配置的内存需要根据自己机器内存大小及应用情况进行修改)
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>1536</value>
   </property>
   <property>
       <name>mapreduce.map.java.opts</name>
       <value>-Xmx1024M</value>
   </property>
   <property>
     <name>mapreduce.reduce.memory.mb</name>
     <value>3072</value>
   </property>
  <property>
   <name>mapreduce.reduce.java.opts</name>
   <value>-Xmx2560M</value>
 </property>

修改配置文件之后都要重启resourcemanager和nodemanager

2.7、查看结果

 2.8、配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤入校:

1、配置mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
   <name>mapreduce.jobhistory.address</name>
   <value>k8smaster:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>k8smaster:19888</value>
</property>

2、启动历史服务器

mapred --daemon start historyserver

 

 2.9、配置日志的聚集

日志聚集的概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动nodemanager、resourcemanager和historymanager。

yarn --daemon stop nodemanager
yarn --daemon stop resourcemanager
mapred --daemon stop historyserver

1、配置yarn-site.xml

 <!-- 日志聚集功能使能 -->
   <property>
      <name>yarn.log-aggregation-enable</name>
      <value>true</value>
    </property>

   <!-- 日志保留时间设置7天 -->
   <property>
      <name>yarn.log-aggregation.retain-seconds</name>
      <value>604800</value>
    </property>

2、重新启动nodemanager、resourcemanager、historymanager

yarn --daemon start  resourcemanager
yarn --daemon start  nodemanager
mapred --daemon start historyserver

3、删除hdfs上已经存在的输出文件

hdfs dfs -rm -r /home/yzh/hadoop/user/output

4、执行wordcount

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /home/yzh/hadoop/user/input /home/yzh/hadoop/user/output

原文地址:https://www.cnblogs.com/cq-yangzhou/p/14355282.html