赞
踩
目录
分布式计算,即以分布式的形式完成数据的统计,得到想要的结果。
1.将数据分片,多台服务器各自负责一部分数据处理。
2.然后将各自的结果,进行汇总处理。
3.最终得到想要的计算结果。
例如:MapReduce
1.由一个节点作为中心1调度管理者。
2.将任务划分为几个具体步骤。
3.管理者安排每个机器执行任务。
4.最终得到结果数据。
例如:Spark、Flink
MapReduce提供了2个编程接口:
·Map:提供了”分散“的功能,由服务器分布式对数据进行处理。
·Reduce:提供了”汇合(聚合)“的功能,将分布式的处理结果汇总统计。
用户如需使用MapReduce框架完成自定义需求的程序开发,只需使用Java、Python等编程语言,实现MapReduce功能接口即可。
假定有四台服务器用以执行MapReduce任务,可以三台服务器执行Map,1台服务器执行Reduce。
(1)资源调度
资源:服务器硬件资源,如:CPU、内存、硬盘、网络等
资源调度:管控服务器硬件资源,提供更好的利用率
分布式资源调度:管控整个分布式服务器集群的全部资源,整合进行统一调度。
(2)程序运行
①程序向YARN申请所需资源
②YARN为程序分配所需资源供程序使用
(3)MapReduce和YARN的关系
①YARN用来调度资源给MapReduce分配和管理运行资源
②MapReduce需要YARN才能执行(普遍情况)
YARN,主从架构,有两个角色:
①主(Master)角色:Resource Manager,整个集群的资源调度者,负责协调各个程序所需的资源。
②从(Slave)角色:Node Manger,单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。
(1)YARN容器
容器(Container):是YARN的NodeManager在所属服务器上分配资源的手段。
创建一个资源容器,即NodeManager预先占用这一部分资源,然后将这一部分资源提供给程序使用。相当于在服务器构建了一个集装箱,程序运行只能在集装箱内,无法突破容器的资源限制。
为了使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站点供用户使用浏览器查看。
在$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>
在$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>
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`/
①一键启动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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。