YARN-MR 大数据第二天
大数据第二天 1.YARN(管理和调度集群中的各类资源)
1.1 产生的背景:
1.直接源于MR版本1的缺陷(如:单点故障、难以支持MR之外的计算框架等)
2.多计算框架各自为站,数据共享困难(如:MR离线计算框架 Storm实时计算框架 Spark内存计算框架)
1.2 架构(采用master-slave结构)
ResourceManager(管理和调配YARN集群的资源)
特性:整个集群只有一个
作用:
处理客户端请求
启动和监控ApplicationMaster
监控NodeManager
资源分配和调度
容错性:存在单点故障(正在实现HA 即主备架构 主一旦挂掉,备切换)
NodeManager(执行计算作业)
特性:可以多个
作用:
单个节点上的资源管理和任务管理
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
容错性:失败后,RM将失败任务告诉对应AM,由AM决定如何处理失败的任务
ApplicationMaster(负责应用程序的管理)
特性:每个应用有一个
作用:
数据切分
任务监控和容错
容错性:失败后由RM负责重启;AM需处理内部任务的容错问题;会自动保存已经运行完成的任务,重启后无需重新运行
Container(对任务运行环境的抽象)
系列信息:
任务启动命令
任务运行环境
任务运行资源
1.3 原理
1.客户端client发送任务请求给ResourceManager
2.ResourceManager收到请求后根据资源占用情况分配对应NodeManager
3.NodeManager收到ResourceManager的命令后开辟一个ApplicationMaster
4.ApplicationMaster对任务分析和数据切分后,将要占用的资源情况发送给ResourceManager
5.ResourceManager根据实时的资源占用情况进行动态分配资源
6.ApplicationMasterna拿到资源后再跟对应的NodeManager进行通信
7.NodeManager得到计算任务后,分配对应的Container容器来执行对应的Task任务
1.4 调度策略
a.双层调度策略
RM将资源分配给AM
AM将资源进一步分配给各个任务
b.基于资源预留的调度策略
当资源不够时,会为任务预留,直到资源充足
1.5 YARN与计算框架的关系
如果YARN是安卓系统的話,那么计算框架就是系统中的一个APP
其中计算框架有:
基于离线计算框架————MR
基于内存计算框架————Spark
基于流式计算框架————Storm 2.MapReduce(基于离线计算框架)
2.1 MapReduce特点:
易于编程
良好的扩展性
高容错性
适合海量数据的离线处理
2.2 基本过程
Map阶段-Shuffle-Reduce阶段
Map阶段:
输入数据格式解析————InputFormat
输入数据处理————Mapper
数据分组————Partitioner
Reduce阶段:
数据处理————Redecer
数据输出格式————OutputFormat
2.3 基本思想
大文件分为若干个小文件,计算各个小文件得到结果,然后再汇总输出
2.4 架构
采用YARN架构
2.5 应用场景
简单的数据统计 比如:网站的PV UV
搜索引擎建索引
海量数据查找
复杂的数据分析算法实现 比如:聚类、分类、推荐、图算法
2.6 Java编程
1.导jar包(旧包兼容2.0,新包不一定支持)
2.编写mapper
3.编写reduce
4.打包
5.发布
YARN-MR 大数据第二天的更多相关文章
- FusionInsight大数据开发---MapReduce与YARN应用开发
MapReduce MapReduce的基本定义及过程 搭建开发环境 代码实例及运行程序 MapReduce开发接口介绍 1. MapReduce的基本定义及过程 MapReduce是面向大数据并行处 ...
- 坐实大数据资源调度框架之王,Yarn为何这么牛
摘要:Yarn的出现伴随着Hadoop的发展,使Hadoop从一个单一的大数据计算引擎,成为大数据的代名词. 本文分享自华为云社区<Yarn为何能坐实资源调度框架之王?>,作者: Java ...
- 开源大数据技术专场(上午):Spark、HBase、JStorm应用与实践
16日上午9点,2016云栖大会“开源大数据技术专场” (全天)在阿里云技术专家封神的主持下开启.通过封神了解到,在上午的专场中,阿里云高级技术专家无谓.阿里云技术专家封神.阿里巴巴中间件技术部高级技 ...
- java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
Hadoop简介和安装及伪分布式 大数据概念 大数据概论 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发 ...
- oschina大数据开源软件
Hadoop 图形化用户界面 Hue 大数据可视化工具 Nanocubes 企业大数据平台 RedHadoop 大数据查询引擎 PrestoDB Hadoop集群监控工具 HTools 安全大数据分析 ...
- 【互动问答分享】第18期决胜云计算大数据时代Spark亚太研究院公益大讲堂
Q1:Master和Driver的是同一个东西吗? 两者不是同一个东西,在Standalone模式下Master是用于集群资源管理和调度的,而Driver适用于指挥Worker上的Executor通过 ...
- 大数据入门第八天——MapReduce详解(三)MR的shuffer、combiner与Yarn集群分析
/mr的combiner /mr的排序 /mr的shuffle /mr与yarn /mr运行模式 /mr实现join /mr全局图 /mr的压缩 今日提纲 一.流量汇总排序的实现 1.需求 对日志数据 ...
- C#码农的大数据之路 - 使用C#编写MR作业
系列目录 写在前面 从Hadoop出现至今,大数据几乎就是Java平台专属一般.虽然Hadoop或Spark也提供了接口可以与其他语言一起使用,但作为基于JVM运行的框架,Java系语言有着天生优势. ...
- CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
随机推荐
- hibernate-cascade级联关系
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBL ...
- easyUI 中datagrid 返回列隐藏方法
easyui的datagrid方法返回的列,有的值不需要显示可以使用hidden(属性进行隐藏) columns : [ [{ field : 'bailClass', title : '类别', w ...
- CLI:如何使用Go开发命令行
CLI或者"command line interface"是用户在命令行下交互的程序.由于通过将程序编译到一个静态文件中来减少依赖,一次Go特别适合开发CLI程序.如果你编写过安装 ...
- IBatis 批量插入数据之SqlBulkCopy
public void AddLetters(IList<int> customerIds, string title, string content, LetterEnum.Letter ...
- php无刷新上传图片和文件
核心思想:通过Html的iframe标签属性操作顶级窗口,再用php动态无刷新上传图片文件. 示例如下: demo |------uploads #存放上传的文件 |------index.php | ...
- getCanonicalName和getSimpleName getName的区别与应用
接口: package com.test; public interface Fruit { } 一个实现类: package com.test; public class Apple impleme ...
- [译]使用branch
这篇文章将介绍Git分支. 首先, 看看如果创建分支, 这就像是request一个新的项目历史. 接着, 来看看git checkout是如果能被用来选择一个分支的. 最后, 学习用git merge ...
- (二)SQL Server分区创建过程
虽然分区有很多好处(一)SQL Server分区详解Partition,却不能随意使用:且不说分区管理的繁琐,只是跨分区带来的负面影响就需要我们好好分析是否有必要使用分区.一般分区创建的业务特点:用于 ...
- PHP中global与$GLOBALS['']的区别
+++ 探讨(一)+++++++++++++++++++++++++++++++++++++++ 很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然. 根据官方的解释是 $GL ...
- PHP图像裁剪为任意大小的图像,图像不变形,不留下空白
<?php /** * 说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形 * 参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高 */ fu ...