分布式计算概述(MapReduce && Yarn理论及部署)

目录

一、分布式计算概述

1.分散-->汇总模式:

2.中心调度-->步骤执行模式:

二、MapReduce概述

1.分布式计算框架-MapReduce

2.MapReduce运行机制

 三、YARN概述

1.分布式资源调度-YARN

2.YARN核心架构

3.YARN辅助架构

四、MapReduce & YARN的部署

1.Map Reduce配置文件

 2.YARN配置文件

 3.分发配置文件

 4.集群基础命令介绍


一、分布式计算概述

        分布式计算,即以分布式的形式完成数据的统计,得到想要的结果。

1.分散-->汇总模式:

        1.将数据分片,多台服务器各自负责一部分数据处理。

        2.然后将各自的结果,进行汇总处理。

        3.最终得到想要的计算结果。

        例如:MapReduce

2.中心调度-->步骤执行模式:

        1.由一个节点作为中心1调度管理者。

        2.将任务划分为几个具体步骤。

        3.管理者安排每个机器执行任务。

        4.最终得到结果数据。

        例如:Spark、Flink

二、MapReduce概述

1.分布式计算框架-MapReduce

        MapReduce提供了2个编程接口:

        ·Map:提供了”分散“的功能,由服务器分布式对数据进行处理。

        ·Reduce:提供了”汇合(聚合)“的功能,将分布式的处理结果汇总统计。

        用户如需使用MapReduce框架完成自定义需求的程序开发,只需使用Java、Python等编程语言,实现MapReduce功能接口即可。

2.MapReduce运行机制

        假定有四台服务器用以执行MapReduce任务,可以三台服务器执行Map,1台服务器执行Reduce。

 三、YARN概述

1.分布式资源调度-YARN

        (1)资源调度

        资源:服务器硬件资源,如:CPU、内存、硬盘、网络等

        资源调度:管控服务器硬件资源,提供更好的利用率

        分布式资源调度:管控整个分布式服务器集群的全部资源,整合进行统一调度。

        (2)程序运行

        ①程序向YARN申请所需资源

        ②YARN为程序分配所需资源供程序使用

       (3)MapReduce和YARN的关系

        ①YARN用来调度资源给MapReduce分配和管理运行资源

        ②MapReduce需要YARN才能执行(普遍情况)

2.YARN核心架构

        YARN,主从架构,有两个角色:

        ①主(Master)角色:Resource Manager,整个集群的资源调度者,负责协调各个程序所需的资源。

        ②从(Slave)角色:Node Manger,单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。

         (1)YARN容器

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

        创建一个资源容器,即NodeManager预先占用这一部分资源,然后将这一部分资源提供给程序使用。相当于在服务器构建了一个集装箱,程序运行只能在集装箱内,无法突破容器的资源限制。

3.YARN辅助架构

        为了使YARN集群运行更加稳定,因此给YARN集群搭配了两个辅助角色:

        (1)代理服务器(Proxy Server):Web APPlication Proxy Web应用程序代理

        代理服务器,即Web应用代理是YARN的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但是可以配置为在独立模式下运行。使用代理的原因是为了减少YARN进行基于网络的攻击的可能性。因为YARN在运行是会提供一个Web UI站点(同HDFS的Web UI站点)可供用户在浏览器内查看YARN的运行信息。

        代理服务器的功能:

        ①警告用户正在访问一个不受信任的站点。

        ②剥离用户访问的Cookie等。

       (2)历史服务器(Job History Server)应用程序历史记录服务

        记录历史运行的程序的信息以及产生的日志并提供WEB UI站点供用户使用浏览器查看。

四、MapReduce & YARN的部署

1.Map Reduce配置文件

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

        修改mapred-env.sh文件,添加如下

        # 设置JDK路径
        export JAVA_HOME=export/servers/jdk
        # 设置JobHistoryServer进程内存为1G
        export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
        #设置日志基本为INF0
        export HADOOP_MAPRED_ROOT_LOGGER=INF0,RFA

        

        配置 mapred-site.xml,配置如下 

<configuration>   

         <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <description>MapReduce的运行框架设置为YARN</description>
        </property>

        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>node1:10020</value>
                <description>历史服务器通信端口为node1:10020</description>
        </property>

        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>node1:19888</value>
                <description>历史服务器web端口为node1的19888</description>
        </property>

         <property>
                <name>mapreduce.jobhistory.intermediate-done-dir</name>
                <value>/data/mr-history/tmp</value>
                <description>历史信息在HDFS的记录临时路径</description>
        </property>

        <property>
                <name>mapreduce.jobhistory.done-dir</name>
                <value>/data/mr-history/done</value>
                <description>历史信息在HDFS的记录路径</description>
        </property>

        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
                <description>MapReduce HOME 设置为HADOOP_HOME</description>
        </property>
 

</configuration>

 2.YARN配置文件

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

        (1)配置yarn.env.sh文件

        # 设置JDK路径的环境变量
        export JAVA_HOME=/export/servers/jdk
        # 设置HADOOP_HOME的环境变量
        export HADOOP_HOME=/export/servers/hadoop
        # 设置配置文件路径的环境变量
        export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
        # 设置日志文件路径的环境变量
        export HADOOP_LOG_DIR=$HADOOP_HOME/logs

        

        (2) 配置yarn-site.xml 

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>node1</value>
                <description>ResourceManager设置在node1节点</description>
        </property>

        <property>
                <name>yarn.nodemanager.local-dirs</name>a
                <value>/data/nm-local</value>
                <description>NodeManager中间数据本地存储路径</description>
        </property>

        <property>
                <name>yarn.nodemanager.log-dirs</name>
                <value>/data/nm-log</value>
                <description>NodeManager数据日志本地存储路径</description>
        </property>

        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
                <description>为MapReduce程序开启shuffle服务</description>
        </property>

        <property>
                <name>yarn.log.server.url</name>
                <value>http://node1:19888/jobhistory/logs</value>
                <description>历史服务器URL</description>
        </property>

        <property>
                <name>yarn.web-proxy.address</name>
                <value>node1:8088</value>
                <description>代理服务器主机和端口</description>
        </property>

        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
                <description>开启日志聚合</description>
        </property>

        <property>
                <name>yarn.nodemanager.remote-app-log-dir</name>
                <value>/tmp/logs</value>
                <description>程序日志HDSF的存储路径</description>
        </property>

        <property>
                <name>yarn.resourcemanager.scheduler.calss</name>
                <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
                <description>选择公平调度器</description>
        </property>
 

 3.分发配置文件

        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`/

 4.集群基础命令介绍

        ①一键启动YARN集群:$HADOOP_HOME/sbin/start-yarn.sh

        ②一键停止YARN集群:$HADOOP_HOME/sbin/stop-yarn.sh

        ③单独启动或停止进程:$HADOOP_HOME/bin/yarn --daemon start | stop rsourcemanager |  nodemanager | proxyserver

        ④历史服务器启动和停止:¥HADOOP_HOME/bin/mapred --daemon start | stop historyserver

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吗喽也是命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值