当前位置:   article > 正文

MapReduce配置和Yarn的集群部署

MapReduce配置和Yarn的集群部署

一、集群环境,还是如下三台服务器

  • 192.168.32.101 node1
  • 192.168.32.102 node2
  • 192.168.32.103 node3

二、YARN架构

  1. YARN,主从架构,有2个角色
  • 主(Master)角色:ResourceManager
  • 从(Slave) 角色:NodeManager
  1. 两个角色各自的功能是什么?
  • ResourceManager: 管理、统筹并分配整个集群的资源
  • NodeManager:管理、分配单个服务器的资源,即创建管理容器,由容器提供资源供程序使用
  1. 什么是YARN的容器?
  • 容器(Container)是YARN的NodeManager在所属服务器上分配资源的手段
  • 创建一个资源容器,即由NodeManager占用这部分资源
  • 然后应用程序运行在NodeManager创建的这个容器内
  • 应用程序无法突破容器的资源限制
  1. YARN辅助角色
  • 代理服务器(ProxyServer):Web Application Proxy Web应用程序代理
  • 历史服务器(JobHistoryServer): 应用程序历史信息记录服务

三、MapReduce配置文件

在 $HADOOP_HOME/etc/hadoop 文件夹内,修改一下文件:

  1. mapred-env.sh文件,添加如下环境变量
# 设置JDK路径
export JAVA_HOME=/export/jdk
# 设置JobHistoryServer进程内存为1G
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
# 设置日志级别为INFO
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. mapred-site.xml文件,添加如下配置信息
<!-- 针对MR任务,它会将mapreduce作业提交给resourcemanage -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    <!--job运行日志信息访问地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>node1:10020</value>
    </property>
    <!-- jobhistory web访问地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>node1:19888</value>
    </property>
    <!-- 历史信息在HDFS记录的目录 -->
    <property>
      <name>mapreduce.jobhistory.done-dir</name>
      <value>/data/mr-history/done</value>
    </property>
    <!-- 历史信息在HDFS记录的临时目录 -->
    <property>
      <name>mapreduce.jobhistory.intermediate-done-dir</name>
      <value>/data/mr-history/tmp</value>
    </property>
    <!-- MapReduce Home设置为 HADOOP_HOME -->
    <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=$HADOOP_HOME</value>
    </property>
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

四、YARN配置文件

在 $HADOOP_HOME/etc/hadoop 文件夹内,修改

  1. yarn-env.sh文件,添加如下4行环境变量内容
export JAVA_HOME=/export/jdk
export HADOOP_HOME=/export/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
  • 1
  • 2
  • 3
  • 4
  1. yarn-site.xml文件,配置如图属性
<property>
    <name>yarn.log.server.url</name>
    <value>http://node1:19888/jobhistory/logs</value>
    <description></description>
</property>
  <property>
    <name>yarn.web-proxy.address</name>
    <value>node1:8089</value>
    <description>proxy server hostname and port</description>
  </property>
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description>Configuration to enable or disable log aggregation</description>
  </property>
  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/tmp/logs</value>
    <description>Configuration to enable or disable log aggregation</description>
  </property>
<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
    <description></description>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    <description></description>
  </property>
  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/nm-local</value>
    <description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description>
  </property>
  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/nm-log</value>
    <description>Comma-separated list of paths on the local filesystem where logs are written.</description>
  </property>
  <property>
    <name>yarn.nodemanager.log.retain-seconds</name>
    <value>10800</value>
    <description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>Shuffle service that needs to be set for Map Reduce applications.</description>
  </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

五、分发配置文件到node2和node3

scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:`pwd`/
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node3:`pwd`/
  • 1
  • 2

六、Yarn集群启动命令(均用hadoop用户执行)

# 一键启动
$HADOOP_HOME/sbin/start-yarn.sh
# 一键停止
$HADOOP_HOME/sbin/stop-yarn.sh
# 单独启动或停止
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver
# 历史服务器启动或停止
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

启动成功图示

七、查看YARN的WEB UI页面

打开 http://node1:8088 即可看到YARN集群的监控页面(ResourceManager的WEB UI)
部署成功图示

八、提交MapReduce程序至YARN运行

  • 这些内置的示例MapReduce程序代码,都在:
    $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar
  • 可以通过 hadoop jar 命令来运行它,提交MapReduce程序到YARN中。
    语法: hadoop jar 程序文件 java类名 [程序参数] ... [程序参数]
  • 执行如下命令,提交示例MapReduce程序WordCount到YARN中执行
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount hdfs://node1:8020/input/wordcount/ hdfs://node1:8020/output/wc1
  • 1

注意:

  • 参数wordcount,表示运行jar包中的单词计数程序(Java Class)
  • 参数1是数据输入路径(hdfs://node1:8020/input/wordcount/)
  • 参数2是结果输出路径(hdfs://node1:8020/output/wc1), 需要确保输出的文件夹不存在

九、在YARN WEB页面查看提交程序

  • 访问地址:http://node1:8088/cluster/apps
    查看运行程序
    至此,关于MapReduce配置和Yarn的集群部署以及MapReduce程序运行示例结束!!!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/316633
推荐阅读
  

闽ICP备14008679号