HDFS

大数据专栏
上一篇主目录 下一篇

目录

【前言】
hadoop分布式文件系统HDFS


简介

HDFS特点、组成、工作过程机制
HDFS简介及基本概念

【存储方式】
HDFS集群它是怎么给我存储我上传的文件 ?
HDFS集群存储大文件数据的方案:

  1. 分散存储 :
    把一个大文件按照固定的大小切割成很多的小文件 。在hadoop2.x版本当中 数据块大小的默认值是 128M,在hadoop1.x版本当中 数据块大小的默认值是 64M。不管在哪个版本中,该值都是可以更改的。而且不同的文件,他们的切割大小也可以不同,完全是由 客户端 决定
  2. 冗余存储:
    为了提高数据的安全性,HDFS采用的解决方案就是采用冗余存储。在所有的hadoop版本中,默认的冗余值: 3。该值和副本数一样,是可以随意更改,并且不同的文件可以保存不同的备份数。而且也是由客户端决定。当前这个3的意思表示的是:某一个数据块的总数3,而不是表示除了保存这个数据块以外,还要保存3个副本

【可靠性】

  • 当hadoop04和hadoop05挂掉之后,HDFS集群会自动的把原来存在于hadoop04和hadoop05这两台机器上的所有的数据快都会自动复制到其他的节点上。
    现在的问题是:如果把死掉的hadoop04和hadoop05启动起来 会有什么问题?
    重要的结论:客户端在上传文件的时候,已经指定了副本数。所以HDFS会一直尽力的给当前这个文件保存正常的副本数
    当多了副本,就会删除;当少了副本,就会复制

【HDFS 的核心】

  • HDFS的架构 : 主从架构 — 一主多从 — 单点故障问题
    HDFS的namenode节点千万不能死。 整个HDFS集群都不能对外提供服务
    单点故障:当集群中的一个节点宕机之后,就造成了整个集群不可用。保证一个HDFS集群始终都能有一个active namenode 。namenode运行的时候,因为会接受所有的客户端的读写数据(上传 和 下载)的请求。任意时刻,无论哪个客户端发送请求,都得保证有namenode去处理。假如在正常使用过程当中,如果namenode宕机,最合适的方式,肯定是找一个替代品

  • active namenode 运行着 正常的运行,能够接收所有客户端的请求进行共享存储系统(元数据)(生命力非常的顽强)

  • standby namenode 运行着 但是不接受任何客户端的任何请求,仅仅只是等待active namenode的宕机
    namenode是 HDFS 集群的管理节点,掌握这整个HDFS集群的关键核心数据(元数据)

  • 元数据:
    元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
    1、HDFS集群的抽象目录树结构
    2、某个文件被切分成了多少个数据块,都分布在那些节点上
    hadoop.tar.gz
    blk-01 : hadoop02, hadoop03
    blk-02 : hadoop02, hadoop04

  • ZooKeeper
    1、确保整个HDFS集群中,始终只有一个namenode (选举算法)
    2、ZooKeeper实现了一个非常优秀的共享系统

【压力问题】

  • 如果集群超大,如果只有 一个namenode的话,当请求的数量很多,这个namenode的负载会很大。当请求的文件200T 很大,如果要进行下载,怎么保证该客户端能够迅速的找到对应的这个200T 文件的所有数据块都存储在哪些服务器里面?就是发请求去请求namenode告诉客户端 所有数据块的位置。客户端要寻找的关于这些所有数据块都分布在那些节点的数据都是 元数据。NameNode的内存可能不够存放所有的元数据。那么怎么解决这个问题?
    1、加内存
    2、一个namenode存不下,使用多个namenode去存
    active namenodestandby namenode的状态一模一样, 元数据是一模一样
    first namenodesecond namenode 的状态都是acitve ,元数据不一样

【联邦机制】

  • (namenode之间是兄弟关系)
    管理的从节点:
    1、如果不能交叉,那就意味着,是两个完全独立的集群
    2、如果能交叉,每个datanode都可以为不同的namneode去存储元数据。怎么区分这些数据块到底是属于那个namenode ?靠块池
    在联邦集群中,每个namenode也得做高可用配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值