HBase】【大数据基础】hbase数据库特点_第2页回答

2020-12-27 15:54发布

24条回答
魏魏姐
2楼 · 2020-12-28 10:32

HBase是Hadoop项目的一部分,HBase列式数据库,BigTable的一种实现。高效存储大量数据,支持列压缩,行事务。适合Schema-less的数据,

适合稀疏表,一个表可以容纳上亿行、上百万列,用做超大数据量要求扩展简单的离线分析型应用。Hadoop的无缝集成,有数据可靠性和海量数据分析性能(MapReduce)的能力。

优点:HBase也继承了Hadoop项目的最大优点,那就是对海量数据的支持,以及极强的横向(存储容量)扩展能力。

缺点:HBase的列式存储特性带来了海量数据规模的支持和极强的扩展能力,但是也给数据的读取带来很大的局限。

由于只有同一列族的数据才会被存放在一起,而且所有的查询都必须要依赖Key,这就使得很多复杂查询难以进行。

应用场景:作为MapReduce(大规模数据集(大于1TB)的并行运算)的后台数据源;Facebook的消息类应用,包括Messages、Chats、Emails和SMS系统,用的都是HBase。


三岁奶猫
3楼 · 2020-12-28 11:15

1. In-Memory KV Store : Redis
in memory key-value store,同时提供了更加丰富的数据结构和运算的能力,成功用法是替代memcached,通过checkpoint和commit log提供了快速的宕机恢复,同时支持replication提供读可扩展和高可用。

2. Disk-Based KV Store: Leveldb
真正基于磁盘的key-value storage, 模型单一简单,数据量不受限于内存大小,数据落盘高可靠,Google的几位大神出品的精品,LSM模型天然写优化,顺序写盘的方式对于新硬件ssd再适合不过了,不足是仅提供了一个库,需要自己封装server端。

3. Document Store: Mongodb
分布式nosql,具备了区别mysql的最大亮点:可扩展性。mongodb 最新引人的莫过于提供了sql接口,是目前nosql里最像mysql的,只是没有ACID的特性,发展很快,支持了索引等特性,上手容易,对于数据量远超内存限制的场景来说,还需要慎重。

4. Column Table Store: HBase
这个富二代似乎不用赘述了,最大的优势是开源,对于普通的scan和基于行的get等基本查询,性能完全不是问题,只是只提供裸的api,易用性上是短板,可扩展性方面是最强的,其次坐上了Hadoop的快车,社区发展很快,各种基于其上的开源产品不少,来解决诸如join、聚集运算等复杂查询。

楠楠楠楠
4楼 · 2020-12-28 13:57

HBase是Hadoop项目的一部分,HBase列式数据库,BigTable的一种实现。高效存储大量数据,支持列压缩,行事务。适合Schema-less的数据,

适合稀疏表,一个表可以容纳上亿行、上百万列,用做超大数据量要求扩展简单的离线分析型应用。Hadoop的无缝集成,有数据可靠性和海量数据分析性能(MapReduce)的能力。


20200921文 - 做更棒的自己!
5楼 · 2020-12-28 14:38

HBase不是一个关系型数据库,它需要不同的方法定义你的数据模型,HBase实际上定义了一个四维数据模型,下面就是每一维度的定义:

行键:每行都有唯一的行键,行键没有数据类型,它内部被认为是一个字节数组。

列簇:数据在行中被组织成列簇,每行有相同的列簇,但是在行之间,相同的列簇不需要有相同的列修饰符。在引擎中,HBase将列簇存储在它自己的数据文件中,所以,它们需要事先被定义,此外,改变列簇并不容易。

列修饰符:列簇定义真实的列,被称之为列修饰符,你可以认为列修饰符就是列本身。

版本:每列都可以有一个可配置的版本数量,你可以通过列修饰符的制定版本获取数据。


小鹿姐姐
6楼 · 2020-12-28 14:47

1)大:一个表可以有数十亿行,上百万列;

2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;

3)面向列:面向列(族)的存储和权限控制,列(族)独立检索;?

4)稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏;

5)数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;

6)数据类型单一:Hbase中的数据都是字符串,没有类型。


有点好奇
7楼 · 2020-12-28 16:09

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,它起源于2006年Google发表的BigTable论文。在2008年,PowerSet的Chad Walters和Jim Keller受到了该论文思想的启发,从而把HBase作为Hadoop的子项目来进行开发维护,用于支持结构化的海量数据存储。

  HBase的一大优点是可在廉价PC 服务器上搭建起大规模结构化存储集群。HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。HBase分布式数据库具有如下的显著特点:
 
  容量大
  HBase分布式数据库中的表可以存储成千上万的行和列组成的数据。
  面向列
  HBase是面向列的存储和权限控制,并支持独立检索。列存储,其数据在表中是按照某列存储的,根据数据动态的增加列,并且可以单独对列进行各种操作。
  多版本
  HBase中表的每一个列的数据存储都有多个Version(版本)。一般地,每一列对应着一条数据,但是有的数据会对应多个版本,例如,存储个人信息的HBase表中,如果某个人多次更换过家庭住址,那么记录家庭住址的数据就会有多个版本。
  稀疏性
  由于HBase中表的列允许为空,并且空列不会占用存储空间,因此,表可以设计的非常稀疏。
  扩展性
  HBase的底层是依赖于HDFS。当磁盘空间不足时,我们可以动态的增加机器(即DataNode节点服务)来解决,从而避免像关系型数据库那样,进行数据的迁移。
  高可靠性
  由于HBase底层使用是的HDFS,而HDFS本身具有备份机制,所以在Spark集群出现严重问题时,Replication(即副本)机制能够保证数据不会发生丢失或损坏。
  虽然HBase是Google Bigtable的开源实现,但是它们之间有很多不同之处,例如:Google BigTable利用GFS作为其文件存储系统,而HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理BigTable中的海量数据,而HBase同样利用Hadoop的MapReduce来处理HBase中的海量数据;Google BigTable利用Chubby作为协同服务,而HBase利用Zookeeper作为协调服务作用。
  HBase作为一种分布式数据库,它与传统数据库相比有很大区别,下面从存储模式、表字段以及可延伸性这三个方面分别进行介绍。
  (1) 存储模式
  传统数据库中是基于行存储的,而HBase是基于列进行存储的。
  (2) 表字段
  传统数据库中的表字段不能超过30个,而HBase中的表字段不作限制。
  (3) 可延伸性
  传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储,而HBase是根据数据存储的大小去动态的增加列,列是不固定的。

容量大:HBase分布式数据库中的表可以存储成千上万的行和列组成的数据。
面向列:HBase是面向列的存储和权限控制,并支持独立检索。列存储,其数据在表中是按照某列存储的,根据数据动态的增加列,并且可以单独对列进行各种操作。
多版本:HBase中表的每一个列的数据存储都有多个Version(版本)。一般地,每一列对应着一条数据,但是有的数据会对应多个版本,例如,存储个人信息的HBase表中,如果某个人多次更换过家庭住址,那么记录家庭住址的数据就会有多个版本。
稀疏性:由于HBase中表的列允许为空,并且空列不会占用存储空间,因此,表可以设计的非常稀疏。
扩展性:HBase的底层是依赖于HDFS。当磁盘空间不足时,我们可以动态的增加机器(即DataNode节点服务)来解决,从而避免像关系型数据库那样,进行数据的迁移。
高可靠性:由于HBase底层使用是的HDFS,而HDFS本身具有备份机制,所以在Spark集群出现严重问题时,Replication(即副本)机制能够保证数据不会发生丢失或损坏。
爱学习的小巴
9楼 · 2020-12-29 09:59

 ① 它介于 nosql 和 RDBMS 之间,仅能通过主键(row key)和主键的 range 来检索数据,仅支 持单行事务(可通过 hive 支持来实现多表 join 等复杂操作)。 

    ② Hbase 查询数据功能很简单, 不支持 join 等复杂操作

   ③ 不支持复杂的事务(行级的事务)

   ④ Hbase 中支持的数据类型: byte[]

   ⑤ 主要用来存储结构化半结构化的松散数据。


相关问题推荐

  • 回答 1

  • 回答 2

    可以调一下系统时间,使用date命令,一般节点掉了都是时间不同步。

  • 回答 1

    Hbase安装与启动一,前言二,前期准备  2.1 文件下载  2.2 服务器准备三,配置文件配置  3.1 hbase-env.sh  3.2 hbase-site.xml  3.3 regionservers  3.4 将hbase的bin目录添加到环境变量  3.5 Hbase的官方配置文档四,Hbase服务启动  4.1 ...

  • 回答 3

    首先介绍部署 HBase 之前需要做的准备工作,如 Java、SSH 和 Hadoop 这些先决条件的配置;然后介绍如何安装 HBase,以及如何配置集群中相关文件。同时需要注意的是,本节介绍的是分布式 HBase 集群的部署,在对一台机器修改配置文件后需要同步到集群中的所有...

  • 回答 1

    HBase安装HBase的安装也分为三种,单机版、伪分布式、分布式。我们首先来安装单机版。单机版首先我们去官网下载好HBase的安装包;接下来,将压缩包解压缩到你想安装的目录(我解压到的是/app目录):tar -zxvf hbase-2.1.0-bin.tar.gz /app安装单机版很简...

  • 回答 9

    1、查看单行记录:get '表名称', '行名称'2、查看表中的记录总数:count '表名称'3、查看表所有记录:scan 表名称4、查看表某个列所有记录:scan 表名称 , ['列名称:']5、查看有哪些表:list6、查看表结构:describe '表...

  • 回答 15

    hbase与传统数据库的区别1.数据类型:Hbase只有简单的数据类型,只保留字符串;传统数据库有丰富的数据类型。2.数据操作:Hbase只有简单的插入、查询、删除、清空等操作,表和表之间是分离的,没有复杂的表和表之间的关系;传统数据库通常有各式各样的函数和连...

  • 回答 14

    1、HBase写快读慢,HBase的读取时长通常是几毫秒,而Redis的读取时长通常是几十微秒。性能相差非常大。2、HBase和Redis都支持KV类型。但是Redis支持List、Set等更丰富的类型。3、Redis支持的数据量通常受内存限制,而HBase没有这个限制,可以存储远超内存大小...

  • 回答 9

    启动HBase集群:bin/start-hbase.sh单独启动一个HMaster进程:bin/hbase-daemon.sh start master单独启动一个HRegionServer进程:bin/hbase-daemon.sh start regionserver

  • 回答 5

    hbase的八大应用场景1、对象存储:我们知道不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中2、时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求3、推荐画像:特别是用户的画像,是一个比较...

  • 回答 1

  • 回答 6

    1、频繁刷写我们知道Region的一个列族对应一个MemStore,假设HBase表都有统一的1个列族配置,则每个Region只包含一个MemStore。通常HBase的一个MemStore默认大小为128 MB,见参数hbase.hregion.memstore.flush.size。当可用内存足够时,每个MemStore可以分配...

  • 回答 3

    避免HBase经常split,产生不必要的资源消耗,提高HBase的性能。

  • 回答 4

    HBase每张表在底层存储上是由至少一个Region组成,Region实际上就是HBase表的分区。HBase新建一张表时默认Region即分区的数量为1,一般在生产环境中我们都会手动给Table提前做 预分区,使用合适的分区策略创建好一定数量的分区并使分区均匀分布在不同regions...

  • 回答 3

    关于每个regionserver节点分区数量大致合理的范围,HBase官网上也给出了定义:Generally less regions makes for a smoother running cluster (you can always manually split the big regions later (if necessary) to spread the data, or re......

没有解决我的问题,去提问