加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 襄阳站长网 (https://www.0710zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据技术-HDFS概述与原理分析

发布时间:2022-11-01 11:03:51 所属栏目:大数据 来源:
导读:  HDFS源于Google的GFS,算是GFS的一个克隆版本,HDFS全称Hadoop Distributed File System,是Hadoop生态中的基础组件。

  HDFS的优点

  1)高容错性

  2)适合大数据批处理

  3)流式数据
  HDFS源于Google的GFS,算是GFS的一个克隆版本,HDFS全称Hadoop Distributed File System,是Hadoop生态中的基础组件。
 
  HDFS的优点
 
  1)高容错性
 
  2)适合大数据批处理
 
  3)流式数据访问,一次写入多次读取
 
  4)构建成本低,安全可靠
 
  HDFS的缺点
 
  1)不适合低延迟数据访问
 
  2)不适合存储小文件
 
  3)不适合并发写入
 
  4)不能随机修改
 
  HDFS中的核心概念
 
  1)NameNode-Active
 
  HDFS的master节点,负责管理文件系统的名称空间、存储文件的元信息、管理Slave节点、维护副本策略、处理客户端请求;
 
  2)NameNode-StandBy
 
  Master节点的备用节点,从Master节点同步编辑日志,当Master节点不可用时,升级为NameNode-Master节点;
 
  *NameNode中保存两类数据:编辑日志和元信息,NameNode会定期将这些数据持久化。
 
  3)DataNode
 
  DataNode是HDFS中实际存储数据的节点,它会向Master心跳汇报自身的状态信息,执行客户端的读写请求。
 
  4)数据块
 
  数据块是HDFS中的存储单元,文件被写入HDFS时,会被切分成多个Block块,默认的块大小是128MB,每个数据块会有三个副本;数据块设置成128MB首先是为了最小化磁盘寻址时间,其次,也不适宜设置的太大,由于MapReduce的Map节点通常是处理一个Block块,如果Block过大,那么Map的执行时间就会大大增加;
 
  HDFS的高可用原理
 
  在Hadoop1.x中,由于NameNode存在单点故障,极大的限制的Hadoop的发展和应用场景,在2.X版本中,Hadoop引入了一些列的HA机制来保证集群的可用性,主要包括:
 
  1)QJM日志文件共享系统
 
  在1.X版本中,系统元数据和编辑日志都存储在NameNode的内存中,SecondaryNameNode定期从NameNode中同步,但如果NameNode挂掉,需要手动启动SecondaryNameNode为NameNode,这样势必会造成数据丢失,在2.X中,通过一个QJM来共享集群元数据和编辑日志,当客户端发起写请求时:
 
  2)主备切换
 
  主备切换功能由两个组件组成,一个是DFSZKFailoverController切换控制器和HeathMonitor组成,DFSZKFailoverController负责发起选举,HealthMonitor负责监控NameNode状态,并与DFSZKFailoverController通信报告NameNode健康情况,
 
  3)主备切换隔离机制
 
  有时,由于JVM的FullGC或网络原因,会导致Master节点假死,从而造成集群脑裂,这会严重影响数据的一致性和服务的可用性,为了解决这个问题大数据存储系统,HDFS引入了主备切换的隔离机制,实现这种隔离机制的策略有两种:
 
  Yarn的架构和基本原理
 
  Yarn的全称是Yet Another Resourc Negotiator,是Hadoop2.0引入的,主要功能如下:
 
  架构
 
  Yarn同样采用Master-Slave模块,利用Zookeeper实现Master(ResourceManager)的高可用。
 
  核心组件:
 
  ResourceManager
 
  ResourceManager
 
  NodeManager
 
  ApplicationMaster
 
  Container
 

(编辑:PHP编程网 - 襄阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!