携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情 >>
Hadoop生态系统
根据研究,一般来说,每天会产生2.5万亿字节的数据。仅在过去的两年里,世界上约有90%的数据被生产出来。数据量正在极大地增加。由于数据量巨大,要想在可接受的时间内完成对数据的运算,只有将这些计算分布在成千上万的主机上。2003年和2004年,Google分别发表了GFS[1]和MapReduce[2]这两篇论文,提出了一种处理数据并行计算,分发数据的方法。受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架[3],能够对大量数据进行分布式处理的软件框架Hadoop应运而生。同时,其它众多的开源项目,例如HBase、Hive、Pig、Zookeeper等自然形成了围绕Hadoop的生态系统,为大数据提供了一个完整的、具有多种选择的解决方案
目前,在Hadoop生态系统中对于非结构化数据的存储是通过Hadoop HDFS项目来解决,半结构化数据或结构化数据是通过HBase项目来解决,而对于面向时间序列的数据则是通过OpenTSDB项目来解决。
HDFS[4,5](Hadoop Distributed File System)是一个分布式文件系统,类似于Google的GFS。HBase是一个面向列存储的数据库,类似于Google的BigTable。HBase[6]添加了一个分布式、容错可扩展的数据库,构建在HDFS文件系统之上,具有对数据的随机实时读写访问特性。OpenTSDB[7]主要是用来存储时间序列数据,例如,物联网中传感器的数据,数据库服务器、Web服务器或应用服务器的相关数据,网络相关数据,股票市场数据,天气数据等。这些数据既可以通过OpenTSDB在IE上实时可视化展现,也可以对这些数据进行深度分析。
HBase[8]是一个开源的、分布式的、版本化的面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文——“Bigtable:A Distributed Storage System for Structured Data”[9]。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。
HBase是Hadoop Database的简称,它是Apache的Hadoop项目中的一个子项目,HBase依托于Hadoop的HDFS作为其最基本的存储单元,通过使用Hadoop的HDFS工具就可以看到这些数据存储文件夹的结构,还可以通过MapReduce的框架对HBase进行操作。HBase不同于一般的关系型数据库,它是一个适合于非结构化数据存储的数据库,另一个不同点是HBase采用基于列(更准确地说是基于列族)而不是基于行的模式。它自底向上地进行构建,能够简单地通过增加节点来达到线性扩展。
参考文献:
[1] Ghemawat S, Gobioff H, Leung S T. The Google file system[J]. Acm Sigops Operating Systems Review, 2003, 37(5):29-43.
[2] Dean J. MapReduce: Simplified Data Processing on Large Clusters[C]// Symposium on Operating System Design & Implementation. 2004.
[3]饶文碧主编,Hadoop核心技术与实验,武汉大学出版社,2017.04,第1页
[4] LamC,Hadoopinaction[M]·USA:ManningPubIications,2012.
[5] Venner J, Prohadoop [M] · USA: Appress,20O9
[6] GeorgeL,HBase:The definitive guide[M]·USA:O'RE1L-LY,2011
[7] OpenTSDB[EB/OL][2013-04-24]http:llopentsdb·net/
[8] HBase - Apache Software Foundation project home page.[hadoop.apache.org/hbase/].