MR原语

输入(格式化k,v)数据集map映射成一个中间数据集(k,v)reduce

相同"的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算

计算框架

Partition

Partition主要作用就是将map的结果发送到相应的reduce。这就对partition有两个要求:

1)均衡负载,尽量的将工作均匀的分配给不同的reduce。

2)效率,分配速度一定要快。

Shuffle

:框架内部实现机制

分布式计算节点数据流转:连接MapTask与ReduceTask

样例

理解

Map:

读懂数据

映射为KV模型

并行分布式

计算向数据移动

Reduce:

数据全量/分量加工

Reduce中可以包含不同的key

相同的Key汇聚到一个Reduce中

相同的Key调用一次reduce方法

排序实现key的汇聚

K,V使用自定义数据类型

作为参数传递,节省开发成本,提高程序自由度

Writable序列化:使能分布式程序数据交互

Comparable比较器:实现具体排序(字典序,数值序等)

运行架构

MR1

MRv1角色:

JobTracker

核心,主,单点

调度所有的作业

监控整个集群的资源负载

TaskTracker

从,自身节点资源管理

和JobTracker心跳,汇报资源,获取Task

Client

作业为单位

规划作业计算分布

提交作业资源到HDFS

最终提交作业到JobTracker

弊端:

JobTracker:负载过重,单点故障

资源管理与计算调度强耦合,其他计算框架需要重复实现资源管理

不同框架对资源不能全局管理

MR2

hadoop YARN

YARN架构

YARN:解耦资源与计算

ResourceManager

主,核心

集群节点资源管理

NodeManager

与RM汇报资源

管理Container生命周期

计算框架中的角色都以Container表示

Container:【节点NM,CPU,MEM,I/O大小,启动命令】

默认NodeManager启动线程监控Container大小,超出申请资源额度,kill

支持Linux内核的Cgroup

YARN优势

YARN:Yet Another Resource Negotiator;

Hadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的;

核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由 ResourceManager和ApplicationMaster进程实现

ResourceManager:负责整个集群的资源管理和调度

ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等

YARN的引入,使得多个计算框架可运行在一个集群中

每个应用程序对应一个ApplicationMaster

目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等

MRv2:On YARN

MR-ApplicationMaster-Container

作业为单位,避免单点故障,负载到不同的节点

创建Task需要和RM申请资源(Container)

Task-Container

Client:

RM-Client:请求资源创建AM

AM-Client:与AM交互

将MapReduce作业直接运行在YARN上,而不是由JobTracker和TaskTracker构建的MRv1系统中

基本功能模块

YARN:负责资源管理和调度

MRAppMaster:负责任务切分、任务调度、任务监控和容错等

MapTask/ReduceTask:任务驱动引擎,与MRv1一致

每个MapRduce作业对应一个MRAppMaster

MRAppMaster任务调度

YARN将资源分配给MRAppMaster

MRAppMaster进一步将资源分配给内部的任务

MRAppMaster容错

失败后,由YARN重新启动

任务失败后,MRAppMaster重新申请资源

环境搭建

mapred-site.xml

mapreduce.framework.nameyarn

yarn-site.xml

 yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.resourcemanager.ha.enabledtrueyarn.resourcemanager.cluster-idcluster1yarn.resourcemanager.ha.rm-idsrm1,rm2yarn.resourcemanager.hostname.rm1node03yarn.resourcemanager.hostname.rm2node04yarn.resourcemanager.zk-addressnode02:2181,node03:2181,node04:2181

启动:

node1:启动所有nodemanager

start-yarn.sh

node3,node4:启动resourcemanager

yarn-daemon.sh start resourcemanager

样例:

执行jar

cd /usr/hadoop-2.5.1/share/hadoop/mapreduce

hadoop jar hadoop-mapreduce-examples-2.5.1.jar wordcount /wordcount/input /wordcount/output

监控页:

node04:8088

启动hadoop没有resourcemanager_5.hadoop-MR YARN架构理论与集群搭建相关推荐

  1. redis 一般启动几个 哨兵_Redis6.0主从、哨兵、集群搭建和原理

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 暴走大数据点击右侧关注,暴走大数据! 由 ...

  2. 【Hadoop】单机、伪分布式、完全分布式集群搭建

    搭建Hadoop本地模式 本地模式就是单机装hadoop. 安装hadoop 上传hadoop包 通过winSCP上传hadoop包到/opt/soft/文件夹下 [root@bigdata111 s ...

  3. flink on yarn HA高可用集群搭建

    无论以什么样的模式提交Application到Yarn中运行,都会启动一个yarn-session(Flink 集群),依然是由JobManager和TaskManager组成,那么JobManage ...

  4. kuberbetes的架构与kubernetets集群搭建

    目录 一.k8s概述 1.k8s是什么 2.K8S是做什么用的? 3.为什么要使用K8S? 4.k8s架构图解 5.角色与功能 1)Master管理节点(管理节点) 2)node计算节点 6.mast ...

  5. Mycat高可用架构原理_Mycat集群搭建_HA高可用集群_高可用_单表存储千万级_海量存储_分表扩展---MyCat分布式数据库集群架构工作笔记0027

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 前面我们已经讲了,对于数据库来说,mycat可以,我们通过搭建一主一从,双主双从,来实现数据库集群 ...

  6. 深入浅出学大数据(五)Hadoop再探讨High Availability(HA)集群搭建及YARN原理介绍

      大家好,我是不温卜火,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样 ...

  7. Hadoop架构中各个集群在开发中的作用

    学习大数据,如果只是零零散散地学习各个模块,就会深陷其中,很难深入了解hadoop架构中各个集群的作用.那么在实际开发中,究竟是怎样的一个流程呢?先看下面一张流程图: 接下来就用一些大白话,来讲解每个 ...

  8. Hadoop(二): YARN(资源管理器 RM)、HBase高可用集群搭建

    目录 一.Hadoop的高可用原理概述 1.1 原理概述 1.2 实验环境要求 二.高可用集群的搭建 2.1 搭建Zookeeper 2.2 搭建HA的高可用 2.3 YARN(资源管理器 RM)高可 ...

  9. 3台机器配置hadoop集群_Hadoop学习之路(三)Hadoop集群搭建和简单应用

    概念了解 主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构. 主从结构分类: 1.一主多从 2.多主多从 Hadoop中的HDFS和Y ...

最新文章

  1. ewebeditor 上传大内容文本注意点
  2. 第四次人口普查数据_第七次人口普查预估:单身男性比女性多3000万?你在其中吗?...
  3. 美特斯邦威java面试_在美特斯邦威工作一个月,我学到了什么
  4. 中国电动汽车充电桩行业十四五发展预测及未来战略规划建议报告2022-2027年版
  5. ICLR 2021投稿中值得一读的NLP相关论文
  6. 为什么不用简书写文章
  7. ReactiveCocoa基础
  8. 开启 NFS 文件系统提升 Vagrant 共享目录的性能
  9. cobbler安装4个报错汇总及解决方法:ImportError
  10. 软件设计师考试-计算机网络与网络安全部分的笔记
  11. DirectX 龙书 混合 理解
  12. Adobe CS5 序列号及配置方法
  13. 校内胡策 T9270 mjt树
  14. JAVA WEB开发技术作业 HTML国家奖学金申请审批表
  15. 未来的外科手术可能由气泡代劳
  16. python下的一个好用的日历库,支持农历和公历互转,是一个很好用的日期包
  17. java实现dwg转pdf
  18. 《企业管理概论》在线平时作业1
  19. Lawliet|C++学习笔记1——输入输出
  20. 2020DCIC智慧海洋建设算法赛学习01-赛题北京及地理数据分析常用工具

热门文章

  1. PHP的转义字符与\r\n
  2. Yii的查询后缀限定
  3. TP5 连接oracle数据库
  4. 固件升级校准_RS网络分析仪自检自校准方法-Agitekservice
  5. 写给后端程序员的HTTP缓存原理介绍
  6. java oracle数据备份_Java备份还原Oracle数据库
  7. Linux下crontab乱码,Linux下crontab自动运行Java程序乱码解决方案
  8. 【uniapp】 class表达式
  9. 【sprinb-boot】@ComponentScan 使用
  10. 最强的游戏计算机,这可能是市面上体积最小性能最强的游戏主机了