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

00-Hadoop入门

Hadoop入门

Hadoop四高

1)高可靠性

Hadoop底层维护多个数据副本,所有即使hadoop某个计算元素或存储故障,也不会造成数据丢失

2)高扩展性

在集群间分配任务数据,可方便的扩展数以千计的节点

3)高效性

在mapreduce的思想下,Hadoop是可以并行工作的,以加快任务处理的速度。

4)高容错性

能够自动将失败的任务重新分配

HDFS缺点:

1)不适合低延迟数据访问,比如毫秒级的存储数据,它做不到

2)无法高效对大量小文件进行存储

存储大量小文件,他会占用大量的NameNode大量的内存来存储文件目录和快信息。这样是不可取的,因为NameNode内存是有限的

小文件的寻址时间会超过读取时间,违反了HDFS的设计目标

3)不支持并发写入、文件随机修改

一个文件只能有一个写,不允许多个线程同时写

仅支持数据追加(append),不支持文件的随机修改

Hadoop组成

Hadoop1.x阶段

HDFS(数据存储)、MapReduce(计算+资源调度)、Common(辅助工具)

1.x时期,mr需要同时处理业务逻辑运算又要资源调度,压力大,耦合度大。

Hadoop2.x阶段

HDFS(数据存储)、MapReduce(计算)、YARN(资源调度)、Common(辅助工具)

Hadoop3.x阶段无变化

  • Hadoop集群包括两个:HDFS集群、YARN集群
  • 两个集群逻辑上分离、通常物理上是在一起的
  • 两个集群都是标准的主从架构的集群

Hadoop架构

HDFS 集群

​ 主角色:NameNode(NN)是Master,它是管理者

  • ​ 存储文件元数据,如文件名、文件目录结构、文件属性,以及每个文件块列表、块所在DataNode等
  • ​ 管理HDFS的名称空间
  • ​ 配置副本策略
  • ​ 处理客户端读写请求

​ 从角色:DataNode(DN) 是Slave,DataNode执行实际的操作

  • ​ 在本地文件系统存储文件块数据和读写数据块,以及数据的校验和

​ 主角色辅助角色:SecondaryNameNode(SNN) 相当于主角色的秘书

​ 该节点并非NameNode的热备节点。当NameNode挂掉时,它并不能马上替换NameNode并提供服务

​ 它只辅助NameNode,分担NameNode工作量,比如定期合并Fsimage和Edits,并推送给NameNode

  • 每个一段时间对NameNode元数据做备份
  • ​ 紧急情况下,可辅助恢复NameNode

Client客户端

1)文件切片。文件上传HDFS时,Client将文件分成一个个block,然后进行上传;

2)与NameNode交互,获取文件的位置信息;

3)与DataNode交互,读取或写入信息;

4)Client提供了一些命名来管理HDFS,比如NameNode格式化;

5)Client可以通过一些命名来访问HDFS,比如对HDFS增删改查等操作

YARN集群

​ 主角色:ResourceManager(RM)

  • 整个集群资源(cpu、内存等)的老大

​ 从角色:NodeManager(NM)

  • 单个节点服务器资源的老大

​ ApplicationMaster(AM)

  • 单个任务运行的老大

​ Container

  • 容器,相当于一台独立的服务器,里面封装了任务运行时所需资源,内存、cpu、磁盘、网络等

注:集群上可以有很多ApplicationMaster,每个NodeManager上可以有多个Container

Hadoop特征优点

扩容能力(Scalable):Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中。

成本低(Economical):Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。

高效率(Efficient):通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。

可靠性(Rellable):能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。所以Hadoop的按位存储和处理数据的能力值得人们信赖。

http://www.lryc.cn/news/105507.html

相关文章:

  • SE-Net注意力机制详解
  • 商城免费搭建之java商城 开源java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c bbc
  • 推理加速 --- torch.compile
  • JS-----数据结构与算法(2)
  • 手把手安装TomCat;并部署JPress
  • tensorflow1.13分布式训练 参考资料 -教程原理
  • DP学习第五篇之礼物的最大价值
  • cURL error 1: Protocol “https“ not supported or disabled in libcurl
  • XCode升级后QT无法编译的问题
  • springboot编写mp4视频播放接口
  • 华为OD机试真题 JavaScript 实现【机器人活动区域】【2023Q1 200分】,附详细解题思路
  • C++中的静态分配和动态分配
  • 【Android常见问题(五)】- Flutter项目性能优化
  • JSON转换:实体类和JSONObject互转,List和JSONArray互转(fastjson版)
  • Java单例模式几种代码详解
  • PHP代码审计--理论
  • 在云服务器上,clone github时报Connection timed outexit code: 128
  • 小型双轮差速底盘寻迹功能的实现
  • 第七篇:k8s集群使用helm3安装Prometheus Operator
  • Chrome 75不支持保存成mhtml的解决方法
  • 工程监测振弦采集仪应用于岩土工程监测案例
  • 配置HDFS单机版,打造数据存储的强大解决方案
  • U盘删除的文件怎么找回?4个简单方法分享!
  • 【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序2
  • 形参动态内存开辟和柔性数组
  • 【LLM系列之指令微调】长话短说大模型指令微调的“Prompt”
  • MacOS使用brew如何下载Nginx
  • linux ftp
  • 你知道HTTP与HTTPS有什么区别吗?
  • keil使用printf函数重定串口输出,程序卡在Reset_Handler