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