IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MapReduce介绍 -> 正文阅读

[大数据]MapReduce介绍

什么是MapReduce?

MapReduce是一个将分布式计算抽象为Map和Reduce两个阶段的编程模型。

一个完整的MapReduce必须要有Mapper,但是可以没有reduce。

MapReduce主要的四个部分

1、客户端Client

作用:

(1)用户编写的应用程序要通过客户端Client来提交给作业跟踪器JobTracker。

(2)用户可以通过客户端Client提供的接口查看所提交作业的运行状况。

2、作业跟踪器JobTracker

作用:

(1)负责资源监控和作业调度

(2)监控底层任务跟踪器TaskTracker和当前运行Job的健康状况。

(3)在节点失效时,转移Job到其他以节点继续运行。

(4)跟踪任务执行进度和资源使用量,并把信息发送给任务调度器TaskScheduler。

3、任务调度器TaskScheduler

作用:

(1)根据作业跟踪器JobTracker发送的任务进度和资源使用信息,决定把哪个任务分发给哪个节点的任务跟踪器TaskTracker执行。

任务调度器TaskScheduler是一个可插拔模块,即允许用户自己编写任务调度策略。

4、任务跟踪器TaskScheduler

作用:

(1)分布在各个机器(节点)上,接收作业跟踪器JobTracker发来的命令,具体都执行各种任务。

(2)把资源使用情况和任务运行进度以heartbeat的方式发送给作业跟踪器JobTraker以供其监控。

作业跟踪器:

分为Map Task和Reduce Task。一台机器可以同时运行Map Task和Reduce Task。

槽Slot:

每个TaskTracker都会把计算资源(CPU、内存等)打包,然后等分成很多份,以Slot作为当量。

Slot分为Map类型和Reduce类型两种,分别执行Map Task和Reduce Task。只有空闲的Slot才会被TaskScheduler分配新的任务。

MapReduce执行流程

详:

1.RPC请求

2.获取新的jobID

3.复制job资源

4.提交任务

5.初始化job

6.获取job资源并分配任务

7.heartbeat(返回任务状态)

8.获取job资源

9.启动任务

10.计算结果写入HDFS

细:

1.JobClient通过RPC协议向JobTracker请求一个新应用的ID,用于MapReduce作业的ID

2.JobTracker检查作业的输出说明。例如,如果没有指定输出目录或目录已存在,作业就不提交,错误抛回给JobClient,否则,返回新的作业ID给JobClient

3.JobClient将作业所需的资源(包括作业JAR文件、配置文件和计算所得得输入分片)复制到以作业ID命名的HDFS文件夹中

4.JobClient通过submitApplication()提交作业

5.JobTracker收到调用它的submitApplication()消息后,进行任务初始化

6.JobTracker读取HDFS上的要处理的文件,开始计算输入分片,每一个分片对应一个TaskTracker

7.TaskTracker通过心跳机制领取任务(任务的描述信息)

8.TaskTracker读取HDFS上的作业资源(JAR包、配置文件等)

9.TaskTracker启动一个java child子进程,用来执行具体的任务(MapperTask或ReducerTask)

10.TaskTracker将Reduce结果写入到HDFS当中

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:46:25  更:2022-05-09 12:49:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:06:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码