Skip to content

Latest commit

 

History

History
21 lines (21 loc) · 2.61 KB

File metadata and controls

21 lines (21 loc) · 2.61 KB

第3章 海量数据存储

  • 海量数据存储的演进之路
    • Hadoop中的HDFS(Hadoop Distributed File System,分布式文件系统),它可以解决海量数据存储的问题,但是其最大的缺点是不支持单挑数据的修改操作,因为它毕竟不熟数据库。
    • HBase是一个基于HDFS分布式NoSQL数据库。这意味着,HBase可以利用HDFS的海量数据存储能力,并支持修改操作。但HBase并不是关系型数据库,所以它无法支持传统的SQL语法。
    • Kudu介于HDFS和HBase之间,支持数据修改,也支持基于SQL的统计分析。
      • Kudu不及HDFS批处理速度快,也不及HBase随机读写能力强。
      • 但是,在 SQL统计分析场景下,Kudu比HBase的批处理速度快;在实时写入或更新的场景下,Kudu比HDFS的随机读写能力强。
  • HDFS的原理及架构分析
    • HDFS是一种允许文件通过网络在多台主机上分享的分布式文件系统,可以让多台机器上的多个用户分享文件和存储空间。
    • HDFS的典型使用场景是“一次写入,多次读取”。一个文件被创建、写入及关闭之后,其中的内容就不会改变了。
    • 分布式文件系统有很多,HDFS只是其中的一种。
    • HDFS分布式文件系统具备以下优点:
      • 通透性:通过网络访问文件的动作,在程序与用户看来就像是在访问本地磁盘。
      • 高容错性:即使系统中某些节点宕机,整体来说系统仍然可以持续运作而不会丢失数据。因为HDFS中的数据会保存多个副本(默认3份),且提供了容错机制,副本丢失也可以自动恢复。
      • 性价比高:可以运行在大量的廉价机器上,节约成本。
    • HDFS分布式文件系统具备以下缺点:
      • 不合适低延时数据访问:数据延时比较高,无法支持“毫秒”级别的数据存储。
      • 不合适小文件存储:HDFS的主节点(NameNode)的内存是有限的,每个Block对应的运输局信息都会在NameNode中占用150byte的内存空间。1个1MB的文件对应1个Block,会占用150byte。1个128MB的文件也对应1个Block,也只会占用150byte。所以,存储大量小文件就没有意义了,这违背了HDFS的设计理念。
      • 不支持文件并发写入和随机修改:1个文件同时只能有1个线程执行写操作,不允许多个线程同时执行写操作。只支持文件执行追加操作,不支持对文件执行随机修改操作。
  • NoSQL数据库之HBase
    • HBase的全称是Hadoop Database。它是一个高可靠、高性能、面向列、可伸缩的NoSQL分布式存储数据库。