(一)HDFS总体架构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qinshi965273101/article/details/82961345

1、背景

海量的非结构化数据,几乎没法梳理成一个个的字段,来存储在关系型数据库中。所以实际应用中,对于这类数据需要考虑数据如何存储。数据如何计算的问题。

2、hadoop两个核心

  • HDFS(以分布式方式来存储海量数据)
  • MapReduce(以HDFS上的数据为基础进行计算)

3、大数据特点

  • Volume(大量)
  • Velocity(持续高速增长)
  • Variety(多样性)
  • value(价值密度低,数据很多但真正有价值的数据少)
  • Veracity(真实性)

4、Hadoop版本

hadoop有第一代和第二代,第二代与第一代最显著的特点是:第二代比第一代多了一个资源调度框架(yarn)。

hadoop第二代上可以跑多种计算框架,例如spark,MapReduce等。

目前3.0版本已经发布。

5、HDFS架构

如图:

  • 分布式存储数据:一个文件拆分成了四块,分别保存在机架1中的四台服务器中(datanode
  • 引入namenode:若要获取文件,需要知道该文件拆成哪些块,分别保存在哪等。namenode就是专门管理文件块信息。
  • 避免namenode单点故障:有一个SecondaryNameNode服务作为namenode的备用。
  • 引入副本冗余机制:此处采用三副本机制(磁盘利用率1/3),以黄色块为例,在机架1的第四台服务器上保本一个副本,在机架2的第一台服务器上保存了一个副本,以防机架1全部宕机。

namenode作用:

  • namenode数据在内存中,供客户端快速查询。为防数据丢失,也会在磁盘保存镜像文件。
  • 管理整个分布式文件系统的元数据信息,一个文件多大,有几块,每个块多大,分别存储在那些节点等。
  • 管理整个集群的状态,比如所有datanode时间间隔会向namenode发起一个心跳包,namenode时间间隔内没有收到心跳包,则判定为该datanode宕机。

1.0版本namenode单点故障解决方案:

  • SecondaryNameNode是1.0版本的方案
  • 针对hdfs的操作,会有对应的操作记录。每时间间隔,SecondaryNameNode会把操作记录和当前镜像文件合并,生成最新的镜像文件。同时把数据同步给自己
  • SecondaryNameNode不是实时热备,可能会造成元数据的丢失。

2.0版本namenode单点故障解决方案

  • 考虑到1.0版本的弊端,2.0版本提供实时热备,解决方案如下图
  • 但是使用伪分布模式搭建hadoop,还是会使用SecondaryNameNode机制处理

扫描二维码关注公众号,回复: 4548473 查看本文章

猜你喜欢

转载自blog.csdn.net/qinshi965273101/article/details/82961345
今日推荐