3 分布式计算与资源调度
分布式计算概述
什么是分布式计算
由数据得到的结论是广义上的计算,也是计算的目的
分布式计算是指以分布式的形式完成数据的统计,得到结果
- 数据过大无法一台电脑独立计算
- 用数量取胜单台计算
分布式计算模式
分散-汇总模式(MapReduce)
- 分发数据,多台服务器各自负责一部分的数据处理
- 汇总到一台主机
中心调度-步骤执行模式(Spark、Flink)
在计算的中间结果有数据交换的过程
- 由一个节点作为中心调度管理者
- 划为几个步骤
- 安排每台机器的执行与数据交换
MapReduce
是Hadoop组件之一
MapReduce 提供了两个编程接口:
- Map 提供分散数据功能
- Reduce 汇总聚合功能
执行原理
tip
Hive 是基于MapReduce的sql计算框架
YARN
YARN 与 MapReduce 会一起执行,用于资源调度
分布式服务器资源调度,对整个服务器进行统一调度,对资源有规划有管理的使用,能提高效率。
YARN下MapReduce的调度
YARN架构
- RescourceManager:整个集群的资源调度者
- NodeManager:单个服务器的资源调度者
YARN容器
- 预先先占用资源,再分配给任务
- 虚拟化计算,封装运行(NodeManager)
YARN辅助角色
- 代理服务器,提高网络访问的安全
- JobHistoryServer历史服务器,通过收集容器的日志,通过浏览器访问
配置MapReduce与部署YARN
修改部分
集群规划:
MapReduce的配置
添加 mapred-env.sh 配置(/etc/hadoop)
export JAVA_HOME=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPREN_ROOT_LOGGER=LNFO,RFA
添加 mapred-site.xml 配置(/etc/hadoop)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10820</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/data/mr-history/tmp</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/data/mr-history/done</value>
</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>
</configuration>