暑假第七周总结

这周我继续学习大数据相关知识,学习和了解了mapreduce和yarn的相关知识

一、MapReduce——分布式计算框架

在学习MapReduce时,我考虑了几个问题

什么是MapReduce

MapReduce是Hadoop中的分布式计算组件 MapReduce可以以分散->汇总(聚合)模式执行分布式计算任务

2. MapReduce的主要编程接口

map接口,主要提供“分散”功能,由服务器分布式处理数据

reduce接口,主要提供“汇总”功能,进行数据汇总统计得到结果

MapReduce可供Java、Python等语言开发计算程序

yarn——分布式资源调度

1. YARN的架构有哪2个角色?

主(Master):ResourceManager

从(Slave):NodeManager

2. 两个角色各自的功能是什么?

ResourceManager: 管理、统筹并分配整个集群的资源

NodeManager:管理、分配单个服务器的资源,即创建管理容器,由容器提供资源供程序使用

3. 什么是YARN的容器?

容器(Container)是YARN的NodeManager在所属服务器上分配资源的手段

创建一个资源容器,即由NodeManager占用这部分资源 然后应用程序运行在NodeManager创建的这个容器内

应用程序无法突破容器的资源限制

三、MapReduce配置

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

修改: mapred-env.sh文件,

vim mapred-env.sh

 

添加如下环境变量

export JAVA_HOME=/export/server/jdk

export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000

export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

 

修改mapred-site.xml文件

vim mapred-site.xml

添加如下配置信息

 <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description></description>
  </property>

  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>node1:10020</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>node1:19888</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>/data/mr-history/tmp</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/data/mr-history/done</value>
    <description></description>
  </property>
<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>

四、YARN部署

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

修改: yarn-env.sh文件

vim yarn-env.xml

添加如下4行环境变量内容

export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

 

修改:yarn-site.xml文件

vim yarn-site.xml

配置如下

<!-- Site specific YARN configuration properties -->
<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>

 

分发配置文件

 

集群启动命令介绍

常用的进程启动命令如下:
一键启动YARN集群: $HADOOP_HOME/sbin/start-yarn.sh
会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager
会基于workers文件配置的主机启动NodeManager
一键停止YARN集群: $HADOOP_HOME/sbin/stop-yarn.sh
在当前机器,单独启动或停止进程
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver
start和stop决定启动和停止
可控制resourcemanager、nodemanager、proxyserver三种进程
历史服务器启动和停止
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver

开始启动YARN集群

在node1服务器,以hadoop用户执行 首先执行:$HADOOP_HOME/sbin/start-yarn.sh,

一键启动所需的: ResourceManager NodeManager ProxyServer(代理服务器)

其次执行:$HADOOP_HOME/bin/mapred --daemon start historyserver

启动: HistoryServer(历史服务器)

部署完成

posted @ 2023-08-20 23:32  伽澄  阅读(10)  评论(0编辑  收藏  举报