大数据技术体系
大数据技术涵盖了从数据的海量存储、处理到应用的多方面技术,包括异构数据源融合、海量分布式文件系统、NoSQL 数据库、并行计算框架、实时流数据处理以及数据挖掘、商业智能和数据可视化等。一个典型的大数据处理系统可分为五层:数据采集、存储、处理、分析、应用及展现等,其技术体系如图 所示。
一、HBASE
HBase建立在分布式文件系统HDFS之上,是一个提供高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统。它介于非关系型数据库(NoSQL)和关系型数据库(RDBMS)之间,仅能通过主键(Row Key)和主键的范围来检索数据,主要用来存储非结构化和半结构化的松散数据[阿里,2011]。Hbase目标与Hadoop —样都是主要依靠横向扩展,通过增加服务器的方式来增加计算和存储能力。
Apache HBase作为Apache的顶级项目,其发行版本自2008年2月2日0.16.0开始历经38个版本的更迭,到最新2013年2月15日发布的0.94.5,从作为Apache Hadoop的子项目到单独成为Apache的顶级项目,其项目稳定性、高扩展性、性能、安全性及功能等方面有了很大的提高。而随着越来越多的用户(包括科研及商用)的加入,不断的使用、贡献和完善,Apache Hadoop、HBase及其他附属项目已经形成了一个强大的生态系统,随着云计算和大数据的发展,Hadoop作为海量数据分析的最佳解决方案,HBase作为基于Hadoop的分布式数据库也在大放异彩。当然还处于Unreleased状态的主要幵发版本包括其0.90.X, 0.92.X,0.94.X, 0.95.0, 0.96.0,0.98.0,其社K主要开发重心在于企业化功能。
HBase是一个面向列的分布式数据库。HBase不是一个关系型数据库,其设计目标是用来解决关系型数据库在处理海量数据时的理论和实现上的局限性。传统关系型数据库设计时以数据一致性为目标,但是在扩展性、可靠性方面极度欠缺。而HBase从一开始就是为海量数据(TB或PB级别)的存储和高速读写而设计,这些数据要求能够被大量并发用户高速访问,同时分布在数千台普通服务器上。