Hadoop的概述

HDFS产出的背景和意义
1.1hdfs产生的背景
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。hdfs只是分布式管理系统的一种。
1.2hdfs的定义
HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS优缺点
优点1.高容错性:

(1)数据自动保存多副本。它通过增加副本的形式,提高容错。 (2)某个副本丢失后,可以自动恢复。

2.适合处理大数据

(1)数据规模:能够 处理数据规模达到GB、TB\甚至PB级别的数据
(2)文件规模:能够处理百万规模以上的文件数据,数据量之大。
3.可构建在廉价机器上,通过多副本机制,提高可靠性。

缺点:
1.不适合低延迟的数据访问,比如毫秒级的存储数据,是做不到的。
2.无法高效的对大量小文件进行存储。
(1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件目录和快信息,这样是不可取的,因为NameNode的内存有限的;
(2)小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
3.不支持并发写入、文件随机修改
(1)一个文件只有一个写,不允许多个线程同时写
(2)仅支持数据append(追加),不支持文件随机修改

HDFS组成架构
在这里插入图片描述
1.Namenode:就是master,它是一个管理者、主管。

(1)管理HDFS的名称空间; (2)配置副本策略 (3)管理数据块(block)映射信息 (4)处理客户端的读写请求

2.DataNode :就是slave。NameNode下达命令,DataNode执行实际操作。

(1)存储实际数据块 (2)执行实际的读写操作

3.Client(客户端)

  1. 文件切分,文件上传HDFS的时候,client将文件切分成一个一个的block,然后进行上传

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

  3. 与DataNode交互,读取或者写入数据

  4. client提供一些命令管理HDFS,比如NameNode的格式化

  5. client可以通过一些命令来访问hdfs,比如说对hdfs增删改操作
    4 SecondaryNameNode:并非是NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。

    1.辅助NameNode,分担其工作量,比如定期合并Fsimage和edits,并推送NameNode
    2.在紧急情况下,可辅助恢复NameNode
    思考题:为什么块信息大小不能设置太小,也不能设的太大?
    1.HDFS的块信息设置太小,会增加寻址时间,程序一直在找的开始位置
    2.如果块信息设置太大,从磁盘传输数据的时间明显大于定位这个块开始位置所需要的时间。导致程序在处理这块数据非常慢。
    总结:HDFS块的大小设置取决于磁盘传输速率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值