当前位置: 首页 > article >正文

Hadoop基础介绍

Hadoop基础介绍

  • 一、总体介绍
  • 二、HDFS架构
  • 三、MapReduce结构
  • 四、YARN架构

一、总体介绍

1、定义:
是一个开源的、可靠的、可扩展的分布式计算框架。

2、用途:
(1)数据仓库
(2)PB级别数据的存储与处理。
在这里插入图片描述

3、核心组件
(1)HDFS:解决分布式存储,包括数据切分和多副本两部分。
(2)Map Reduce:解决分布式计算,Map:分,Reduce:合。既是分布式框架,又是编程模型。
(3)YARN:通用资源管理系统,实现资源管理、调度。

二、HDFS架构

1、结构:
Master-slave结构,NameNode带DataNode。

2、NameNode:
负责客户端请求的相应;负责元数据(数据的属性描述信息)的管理;监控DataNode健康状况。使用zookeeper实现高可用。

3、DataNode:
存储数据存储;要定期发送信息,汇报自身健康状况。

4、client:
负责数据拆分,默认为128MB,冗余3份。

5、优缺点:
优点:数据冗余;适合大文件存储;处理流式数据;可在廉价机器上构建。
缺点:无法实时运算;不适合小文件存储。

6、HDFS的高可用:
数据存储故障容错、磁盘故障容错、DataNode故障容错、NameNode故障容错。

三、MapReduce结构

1、优缺点:
优点:海量数据的离线处理;易开发。
缺点:无法进行实时的流式计算,比较慢。

2、结构:
分为Map和Reduce两个阶段,通过Hadoop streaming编程,编程时需要分别实现mapper和reducer脚本,可以通过mrjob包编辑python脚本实现MapReduce操作。

3、流程:
准备MapReduce的输入数据;准备Mapper数据,实现map接口,进行Map操作,将数据下发到节点;Shuffle;Reduce处理,实现reduce接口,汇总map阶段的结果;结果输出。

4、MapReduce慢的原因:
数据会频繁的在磁盘和内存中进行IO操作。

在这里插入图片描述
MapReduce的执行流程

四、YARN架构

1、作用:
资源管理工具,协调多个框架共同访问HDFS集群资源。

2、架构:
(1)ResourceManager:RM资源管理器,整个集群同一时间提供服务的RM只有一个。负责集群资源的统一管理和调度;处理客户端请求,submit和kill;监控NM;响应AM请求。
(2)NodeManager:NM节点管理器,整个集群中有多个,负责本身节点资源的管理;定时向RM汇报本节点资源使用情况;接收并处理RM的命令,启动Container运行task ;处理AM命令。
(3)ApplicationMaster:AM,每个应用程序对应一个MR、Spark,负责应用程序的管理;向RM申请资源;与NM通信,分发task,启动/停止task,task运行在container中,AM也运行在container中。
(4)Container:容器,是一个任务运行环境的抽象,封装CPU、内存等资源。
(5)Client:提交、查询、杀死task。

在这里插入图片描述
YARN管理调度示意

3、步骤:
(1)Client提交作业请求。
(2)ResourceManager进程和NodeManager进程通信,根据集群资源,为用户程序分配第一个Container(容器),并将 ApplicationMaster分发到这个容器上面。
(3)在启动的Container中创建ApplicationMaster。
(4)ApplicationMaster启动后向ResourceManager注册进程,申请资源。
(5)ApplicationMaster申请到资源后,向对应的NodeManager申请启动Container,将要执行的程序分发到NodeManager上。
(6)Container启动后,执行对应的任务。
(7)Tast执行完毕之后,向ApplicationMaster返回结果。
(8)ApplicationMaster向ResourceManager汇报任务结束,请求kill。


http://www.kler.cn/a/7374.html

相关文章:

  • ElasticSearch学习笔记二:使用Java客户端
  • 【WPF】Prism学习(三)
  • 【C++】构造函数
  • FreeSWITCH chat 得到的是 Error! Message Not Sent
  • 分布式微服务项目,同一个controller不同方法间的转发导致cookie丢失,报错null pointer异常
  • Redis在高性能缓存中的应用
  • JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流
  • 基于html+css的内容旋转
  • Solon v2.2.7 发布,支持 Java 20
  • MLSkin 5.3 for delphi Crack
  • 约瑟夫问题
  • 【redis】redis分布式锁
  • 镜头光学指标介绍----清晰度SFR
  • 【从零开始学习 UVM】10.2、UVM TLM —— UVM TLM Blocking Put Port
  • 【CSAPP】进程 | 上下文切换 | 用户视角下的并发进程
  • 流量整形(GTS和LR)
  • 蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
  • L2-040 哲哲打游戏 简单模拟
  • 免费CRM如何进行选择?
  • 用GPT-4写代码不用翻墙了?Cursor告诉你:可以~~
  • 【视频分割】【深度学习】MiVOS官方Pytorch代码-S2M模块DeepLavV3Plus网络解析
  • 【Vue框架】Vue绑定样式及案例之行内样式——对象绑定样式与数组控制样式(附带源码案例)
  • 前端基础-ES6
  • 网络安全行业现在好混吗,工资水平怎么样?
  • Junit 5 单元测试框架
  • Matlab 一种计算植物面积密度的新方法(论文复现:凸包法)