HBase的基本概念

HBase:

被称为NoSQL数据库。它提供了键值API,尽管有些变化,与其他键值数据库有些不同。它承诺强一致性,所以客户端能够在写入后马上看到数据。HBase运行在多个节点组成的集群上,而不是单台机器。它对客户端隐藏了这些细节。你的应用代码不需要知道它在访问1个还是100个节点,对每个人来说事情变得简单了。HBase被设计用来处理TB到PB级数据,它为这种场景做了优化。它是Hadoop生态系统的一部分,依靠Hadoop其他组件提供的重要功能,例如数据冗余和批处理。

HBase已经是Apache顶级项目,有着众多的开发人员和兴旺的用户社区。它成为一个核心的基础架构部件,运行在世界上许多公司(如StumbleUpon、Trend Micro、Facebook、Twitter、Salesforce和Adobe)的大规模生产环境中。

看看现在HBase是如何使用的,人们用它构建了什么类型的应用系统。

Hbase使用的几种场景:

  • 使用HBase作为数据存储,抓取来自各种数据源的增量数据。

例如,这种数据源可能是网页爬虫(我们讨论过的BigTable典型问题),可能是记录用户看了什么广告和看了多长时间的广告效果数据,也可能是记录各种参数的时间序列数据。

1.抓取监控指标:OpenTSDB

服务数百万用户的基于Web的产品的后台基础设施一般都有数百或数千台服务器。这些服务器承担了各种功能——服务流量,抓取日志,存储数据,处理数据,等等。

一些公司使用商业工具来收集和展示监控指标,而另外一些公司采用开源框架。
StumbleUpon创建了一个开源框架,用来收集服务器的各种监控指标。按照时间收集监控指标一般被称为时间序列数据,也就是说,按照时间顺序收集和记录的数据。StumbleUpon的开源框架叫做OpenTSDB,它是Open Time Series Database(开放时间序列数据库)的缩写。这个框架使用HBase作为核心平台来存储和检索所收集的监控指标。创建这个框架的目的是为了拥有一个可扩展的监控数据收集系统,一方面能够存储和检索监控指标数据并保存很长时间,另一方面如果需要增加功能也可以添加各种新监控指标。StumbleUpon使用OpenTSDB监控所有基础设施和软件,包括HBase集群自身。

2.抓取用户交互数据:Facebook和StumbleUpon
  抓取监控指标是一种使用方式。还有一种是抓取用户交互数据。如何跟踪数百万用户在网站上的活动?怎么知道哪一个网站功能最受欢迎?怎样使得这一次网页浏览直接影响到下一次?例如,谁看了什么?某个按钮被点击了多少次?还记得Facebook和Stumble里的Like按钮和StumbleUpon里的+1按钮吗?是不是听起来像是一个计数问题?每次用户喜欢一个特定主题,计数器增加一次。

  StumbleUpon在开始阶段采用的是MySQL,但是随着网站服务越来越流行,这种技术选择遇到了问题。急剧增长的用户在线负载需求远远超过了MySQL集群的能力,最终StumbleUpon选择使用HBase来替换这些集群。当时,HBase产品不能直接提供必需的功能。StumbleUpon在HBase上做了一些小的开发改动,后来将这些开发工作贡献回了项目社区。
FaceBook使用HBase的计数器来计量人们喜欢特定网页的次数。该系统每天处理数百亿条事件,记录数百个监控指标。

3.遥测技术:Mozilia和Trend Micro

  软件运行数据和软件质量数据,不像监控指标数据那么简单。例如,软件崩溃报告是有用的软件运行数据,经常用来探究软件质量和规划软件开发路线图。HBase可以成功地用来捕获和存储用户计算机上生成的软件崩溃报告。

Mozilla基金会负责FireFox网络浏览器和Thunderbird电子邮件客户端两个产品。这些工具安装在全世界数百万台计算机上,支持各种操作系统。当这些工具崩溃时,会以Bug报告的形式返回一个软件崩溃报告给Mozilla。Mozilla如何收集这些数据?收集后又是怎么使用的呢?实际情况是这样的,一个叫做Socorro的系统收集了这些报告,用来指导研发部门研制更稳定的产品。Socorro系统的数据存储和分析建构在HBase上。
使用HBase,基本分析可以用到比以前多得多的数据。这种分析用来指导Mozilla的开发人员,使其更为专注,研制出Bug最少的版本。
Trend Micro为企业客户提供互联网安全和入侵管理服务。安全的重要环节是感知,日志收集和分析对于提供这种感知能力是至关重要的。Trend Micro使用HBase来管理网络信誉数据库,该数据库需要行级更新和支持MapReduce批处理。有点像Mozilla的Socorro系统,HBase也用来收集和分析日志活动,每天收集数十亿条记录。HBase中灵活的数据模式允许数据结构出现变化,当分析流程重新调整时,Trend Micro可以增加新属性。

4.广告效果和点击流
过去十来年,在线广告成为互联网产品的一个主要收入来源。先提供免费服务给用户,在用户使用服务的时侯投放广告给目标用户。这种精准投放需要针对用户交互数据做详细的捕获和分析,以便理解用户的特征。基于这种特征,选择并投放广告。精细的用户交互数据会带来更好的模型,进而导致更好的广告投放效果,并获得更多的收入。但这类数据有两个特点:它以连续流的形式出现,它很容易按用户划分。理想情况下,这种数据一旦产生就能够马上使用,用户特征模型可以没有延迟地持续优化,也就是说,以在线方式使用。

在线系统与离线系统术语

在线系统需要低延迟。某些情况下,系统哪怕给出没有答案的响应,也要比花了很长时间给出正确答案的响应好。你可以把在线系统想象为一个跳着脚的没有耐心的用户。离线系统不需要低延迟,用户可以等待答案,不期待马上给出响应。当实现应用系统时,在线或者离线的目标影响着许多技术决策。HBase是一个在线系统。和Hadoop MapReduce的紧密结合又赋予它离线访问的能力。

  • 内容服务

用户消费内容(user consuming content),另外一个完全不同的使用场景是用户生成内容(user generate content)。Twitter帖子、Facebook帖子、Instagram图片和微博等都是这样的例子。
它们的相同之处是使用和生成了许多内容。大量用户通过应用系统来使用和生成内容,而这些应用系统需要HBase作为基础。

  • 信息交换

参考《Hbase实战》

原文地址:https://www.cnblogs.com/lianlianqingning/p/9932811.html

时间: 2024-10-10 20:26:49

HBase的基本概念的相关文章

【DB】HBase的基本概念

一 Hbase是个啥东东? 在说Hase是个啥家伙之前,首先我们来看看两个概念,面向行存储和面向列存储.面向行存储,我相信大伙儿应该都清楚,我们熟悉的RDBMS就是此种类型的,面向行存储的数据库主要适合于事务性要求严格场合,或者说面向行存储的存储系统适合OLTP,但是根据CAP理论,传统的RDBMS,为了实现强一致性,通过严格的ACID事务来进行同步,这就造成了系统的可用性和伸缩性方面大大折扣,而目前的很多NoSQL产品,包括Hbase,它们都是一种最终一致性的系统,它们为了高的可用性牺牲了一部

5.Hbase特点和概念

hbase: 分布式--表的逻辑管理,表数据的物理存储 基于HDFS存储 可以通过HBASE自己的API来实现表数据的访问和分析 也可以通过编写MAPREDUCE程序来实现表数据的访问和分析 HBASE: 容量可以线性扩展,理论上没有上限 表结构: 创建表的时候只需要指定表名,列族名就可以了 表中的每一行record,字段数量和类型都可以不一样 每一行record中的数据是以key-value形式存储 每一个value可以保存多个版本,查询时默认返回最新版本 表的物理存储是"列式存储"

HBase介绍(2)---数据存储结构

在本文中的HBase术语:基于列:column-oriented行:row列组:column families列:column单元:cell 理解HBase(一个开源的Google的BigTable实际应用)最大的困难是HBase的数据结构概念究竟是什么?首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式. Google's BigTable论文 清楚地解释了什么是BigTable:Bigtable是一个疏松的分布式的

[转载] HBase入门

转载地址:https://dxer.github.io/2016/03/18/hbase/ HBase一些基本概念 1.Row key 行主键,在对HBase进行查询时候只能依靠Row key,HBase不支持条件查询等类似于一些主流数据库的查询方式,读取记录只能依赖行主键以及进行全局扫面,可以将行主键想象成主流数据库查询过程中用到的主键(例如,id). 2.Column Family 列族,可以将列族想象成日常主流数据库中的表结构的所有列的一个大管家,列族中存储了所有列的名称,整个表包括多少列

HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已!

理解HBase(一个开源的Google的BigTable实际应用)最大的困难是HBase的数据结构概念究竟是什么?首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式. Google's BigTable论文 清楚地解释了什么是BigTable: Bigtable是一个疏松的分布式的持久的多维排序的map,这个map被行键,列键,和时间戳索引.每一个值都是连续的byte数组.(A Bigtable is a sparse

hbase安装部署(二)

一.Hbase基础 1.概念 Hbase是一个在HDFS上开发的面向列分布式数据库,用于实时地随机访问超大规模数据集,它是一个面向列族的存储器.由于调优和存储都是在列族这个层次上进行,最好所有列族的成员都有相同的"访问模式"和大小特征 2.区域 hbase自动把表水平划分"区域"(region). 每个区域由表中行的子集构.每个区域由它所属于表,它所包含的第一行及其最后一行(不包括这行)来表示 区域是在hbase集群上分布数据最小单位.用这种方式,一个因为太大而无法

HBase之简介

(一)HBase之简介 * 概念 * HBase是一个高可靠性.高性能.面向列.可伸缩.支持版本控制.稀疏的.多维度的和排序的分布式数据库. * 高可靠性: * (1): 在数据的写入过程中,数据首先会写到预写日志WAL(write ahead log)中,再写到memstore(内存)中,一旦                         HRegionServer宕机,可以回滚WAL,重新写入数据:         * (2):数据存储时,一般是用Hadoop的hdfs作为底层存储,可以设

(一)HBase之简介

(一)HBase之简介 * 概念 * HBase是一个高可靠性.高性能.面向列.可伸缩.支持版本控制.稀疏的.多维度的和排序的分布式数据库. * 高可靠性: * (1): 在数据的写入过程中,数据首先会写到预写日志WAL(write ahead log)中,再写到memstore(内存)中,一旦                          HRegionServer宕机,可以回滚WAL,重新写入数据:          * (2):数据存储时,一般是用Hadoop的hdfs作为底层存储,可

大数据学习--之--HBASE理论基础

Apache HBase简介 Apache HBase(Hadoop DataBase)是一个高可靠行.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可以在廉价的PC上搭建起大规模结构化存储集群. HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统:Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduc