教培参考
教育培训行业知识型媒体
发布时间: 2025年01月10日 13:02
什么是Hbase技术?Hbase 是一个开源的、分布式、版本化、高可靠、高性能、面向列、可伸缩的NoSQL数据库,它利用Hadoop分布式文件系统提供分布式数据存储。
Hbase访问接口
Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理Hbase表数据
Hbase Shell,Hbase的命令行工具,最简单的接口,适合Hbase管理使用
Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问Hbase表数据
REST Gateway,支持REST 风格的Http API访问Hbase,解除了语言限制
Pig,可以使用Pig Latin流式编程语言来操作Hbase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理Hbase表数据,适合做数据统计
Hive,当前Hive的Release版本尚没有加入对Hbase的支持,但在下一个版本Hive 0.7.0中将会支持Hbase,可以使用类似SQL语言来访问Hbase。
Hbase运行模式
Hbase的运行有三种模式:单机模式、伪分布式模式、分布式模式。
单机模式:在一台计算机上安装和使用Hbase,不涉及数据的分布式存储;
伪分布式模式:在一台计算机上模拟一个小的集群;
分布式模式:使用多台计算机实现物理意义上的分布式存储。这里出于学习目的,我们只重点讨论单机模式和伪分布式模式。
Hbase的应用场景
对象存储:我们知道不少的头条类、新闻类的的新闻、网页、图片存储在Hbase之中,一些病毒公司的病毒库也是存储在Hbase之中
时序数据:Hbase之上有OpenTSDB模块,可以满足时序类场景的需求
推荐画像:特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在Hbase之上
时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在Hbase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在Hbase之中
OLAP:Kylin一个cube分析工具,底层的数据就是存储在Hbase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求
消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在Hbase之上
Feeds流:典型的应用就是xx朋友圈类似的应用
NewSQL:之上有Phoenix的插件,可以满足二级索引、SQL的需求,对接传统数据需要SQL非事务的需求
为什么采用Hbase?
Hbase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说Hbase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。
Hbase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。
简单来说,你在Hbase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,在Hbase中没有表与表之间关联查询。你只需要 告诉你的数据存储到Hbase的那个column families 就可以了,不需要指定它的具体类型:char,varchar,int,tinyint,text等等。但是你需要注意Hbase中不包含事务此类的功 能。
Apache Hbase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。
微信扫码关注公众号
获取更多考试热门资料