全方位认识HBase:一个值得拥有的NoSQL数据库(一)
前言:说起HBase这门技术,在认知上对于稍微接触或使用过它的人来讲,可能只是百千数据库中一个很普通的库,大概就像我对Redis的认知一样:缓存嘛!可对于HBase,我确实是带着某些感情在的。今日突然萌生了一个生趣的想法,想抛开技术的视角,从情感的角度,像写小说一样,写写这位老朋友,这可能会有点滑稽吧,不过我觉得很放松。《全方位认识HBase:一个值得拥有的NoSQL数据库》:从今天起,我们就暂且认为这是一本小说的名字吧!哈哈~
其实我特别想做的一件事情,就是想让更多的人来认识并使用HBase这门地地道道的大数据栈技术,当然不为别的,主要原因还是HBase真的很棒很热,自己用着感觉真的好,不好的产品我怎么会推荐给你呢?毕竟HBase这家伙不会给我一分钱的广告费~
那首先,我想给大家分享的内容就是:在我刚接触HBase这位老朋友的时候根本不想去看的一些觉得没用的东西。什么呢?其实就是特别无聊又深奥的好像还不得不问的灵魂三问:我是谁?我从哪里来?我要到哪里去?
为什么想写写这个呢?真的好无聊啊~ 当然肯定不是我太无聊了,说实话,是因为对它真的有感情了,所以就想把它的前世今生全都介绍给你,可能算是一种情怀,也可能算是一种敬畏,也可能只是怕赶路的人忘了它是谁。
我从哪里来?
我们知道,HBase出现于大数据背景之下,那么谈到这个问题,我们不得不提一下当年奠定了大数据算法基础的风靡全球的Google三篇论文,也称为Google的三驾马车:Google FS[2003]、MapReduce[2004]、BigTable[2006]。三篇论文中文版链接这里提供给大家,闲来没事可以看一看。
链接:https://pan.baidu.com/s/1EIhGR6gADm2BnEh5hW4KUA
提取码:c1wb
这三篇论文为何风靡全球呢?我们说随着大数据时代的到来,我们同样面临着大数据所带给我们的核心二问:
1、海量数据如何存储?
2、海量数据如何计算?
3、海量结构化数据如何高效读写?
然而,而谷歌公司在2003年至2006年发布的三篇论文则为解决两个问题提供了思路。
“ 我们设计并实现了 Google GFS 文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。
GFS 虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的
服务。
...
GFS 完全满足了我们对存储的需求。”
Google GFS 文件系统超前的设计思想,为解决大数据时代海量数据的存储提出了解决思路,同时对今后的分布式系统设计都提供了宝贵的指导意义。而MapReduce框架则解决了大数据时代海量数据如何计算的问题,虽然现在的Spark很火,但吃水不能忘了挖井人。
2006年,Google发布了第三篇重要论文。Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的 PB 级的数据。Bigtable 的设计目的是可靠的处理 PB 级别的数据,并且能够部署到上千台机器上。用于解决Google内部海量结构化数据的存储以及高效读写问题。
也正是因为这三篇论文的发表,才有了而后的HDFS、MapReduce 和 HBase,才有了2015大数据元年。下面我们详细看一下Hadoop 家族的编年史,这里你大概也可以看出HBase在Hadoop家族中的地位。
* 2002年10月,Doug Cutting和Mike Cafarella创建了开源网页爬虫项目Nutch。
* 2003年10月,Google发表Google File System论文。
* 2004年7月,Doug Cutting和Mike Cafarella在Nutch中实现了类似GFS的功能,即后来HDFS的前身。
* 2004年10月,Google发表了MapReduce论文。
* 2005年2月,Mike Cafarella在Nutch中实现了MapReduce的最初版本。
* 2006年1月,Doug Cutting加入雅虎,Yahoo!提供一个专门的团队和资源将Hadoop发展成一个可在网络上运行的系统。
* 2006年2月,Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。
* 2006年3月,Yahoo!建设了第一个Hadoop集群用于开发。
* 2006年4月,第一个Apache Hadoop发布。
* 2006年11月,Google发表了Bigtable论文,这最终激发了HBase库的创建。
* 2007年10月,第一个可用的HBase发布了。
* 2008年1月,Hadoop成为Apache顶级项目。
* 2008年1月,HBase成为 Hadoop 的子项目。
* 2008年6月,Hadoop的第一个SQL框架——Hive成为了Hadoop的子项目。
* 2009年7月 ,MapReduce 和 HDFS成为Hadoop项目的独立子项目。
* 2009年7月 ,Avro 和 Chukwa 成为Hadoop新的子项目。
* 2009年10月,首届Hadoop World大会在纽约召开。
* 2010年5月 ,HBase脱离Hadoop项目,成为Apache顶级项目。
* 2010年9月,Hive 脱离Hadoop,成为Apache顶级项目。
* 2010年9月,Pig脱离Hadoop,成为Apache顶级项目。
* 2011年1月,ZooKeeper 脱离Hadoop,成为Apache顶级项目。
* 2012年8月,YARN成为Hadoop子项目。
* 2012年10月,第一个Hadoop原生MPP查询引擎Impala加入到了Hadoop生态圈。
* 2014年2月,Spark逐渐代替MapReduce成为Hadoop的缺省执行引擎,并成为Apache基金会顶级项目。
* 2015年10月,Cloudera公布继HBase以后的第一个Hadoop原生存储替代方案——Kudu。
* 2015年12月,Cloudera发起的Impala和Kudu项目加入Apache孵化器。
好了,一张图向大家道一声晚安吧,挺晚了,该睡了~ 下一章我们再追问“我是谁?”的灵魂思考吧~

参考文章
https://blog.csdn.net/lfq1532632051/article/details/53219558

转载请注明出处!欢迎关注本人微信公众号【HBase工作笔记】
全方位认识HBase:一个值得拥有的NoSQL数据库(一)的更多相关文章
- HBase:分布式列式NoSQL数据库
传统的ACID数据库,可扩展性上受到了巨大的挑战.而HBase这类系统,兼具可扩展性的同时,也提出了类SQL的接口. HBase架构组成 HBase采用Master/Slave架构搭建集群,它隶属于H ...
- 15一个NoSql数据库
随着因特网web2.0该网站的兴起.非关系型数据库,现在已经成为一个非常受欢迎的新领域.非关系数据库产品的发展非常迅速.而在处理传统的关系数据库web2.0现场.特别是大规模,高并发SNS类型web2 ...
- NoSQL数据库笔谈(转)
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- 15个nosql数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- NoSQL数据库笔谈
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- 15款NOSQL数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...
- Linux实战教学笔记44:NoSQL数据库开篇之应用指南
第1章 NoSQL数据库 1.1 NoSQL概述 自关系型数据库诞生40年以来,从理论产生发展到现实产品,例如:大家最常见的MySQL和Oracle,逐渐在数据库领域里上升到了霸主地位,形成每年高达数 ...
- NoSql数据库MongoDB系列(1)——MongoDB简介
一.NoSQL简介 NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 .是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.No ...
随机推荐
- Natas33 Writeup(Phar反序列化漏洞)
Natas33: 又是一个上传文件的页面,源码如下: // graz XeR, the first to solve it! thanks for the feedback! // ~morla cl ...
- 免注册公众号的三种微信推送消息服务的C#代码实现
有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新.那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢? 这里有很多应用场景,比如 ...
- Git&Github入门
Github: 仓库repository: 存放项目代码,每个项目对应一个项目 收藏star: 收藏 复制克隆项目(Fork): 发起请求Pull Reques: 别人改进你的代码,如果觉得不错可以合 ...
- mysql事务原理及MVCC
mysql事务原理及MVCC 事务是数据库最为重要的机制之一,凡是使用过数据库的人,都了解数据库的事务机制,也对ACID四个 基本特性如数家珍.但是聊起事务或者ACID的底层实现原理,往往言之不详,不 ...
- Journal of Proteome Research | Mining the Proteome Associated with Rheumatic and Autoimmune Diseases(挖掘风湿和自身免疫疾病相关的蛋白组)(解读人:黄旭蕾)
期刊名:JPR 发表时间:(2019年12月) IF:3.780 单位:Grupo de Investigación de Reumatología (GIR), Unidad de Proteó ...
- angular的性能分析 -随记
$watch 的实现原理和性能分析 只有双向绑定的 scope 才会被加入$watch队列,或者手动绑定$watch的$scope 所有放在 $scope 中的变量或函数都被加入到了$watch队列当 ...
- python基础知识1——简介与入门
什么是Python:Python能做什么:安装与更新:第一个Python程序:变量:pyc字节码:编码:条件和循环:Python运算符:算数,比较,赋值,位,逻辑::::::::::::::::::: ...
- Django实现简单的用户添加、删除、修改等功能
一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...
- 【pytorch】改造resnet为全卷积神经网络以适应不同大小的输入
为什么resnet的输入是一定的? 因为resnet最后有一个全连接层.正是因为这个全连接层导致了输入的图像的大小必须是固定的. 输入为固定的大小有什么局限性? 原始的resnet在imagenet数 ...
- Redis总结--【持续更新】
# 什么是Redis? Redis 是完全开源免费的,是一个高性能的key-value内存数据库,读的速度是110000次/s,写的速度是81000次/s 它有以下三个特点: Redis不 ...