全方位认识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 ...
随机推荐
- 蓝桥杯vip题阶乘计算
蓝桥杯vip题阶乘计算 详细题目 输入一个正整数n,输出n!的值. 其中n!=123*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个 ...
- docker系列详解<二>之常用命令
此篇我们以从docker运行一个tomcat为例,进行一下操作: 拉取镜像 查看镜像 创建容器 查看运行状态 进入退出容器 停止容器 重启容器 删除容器 删除镜像 1.拉取tomcat镜像: 1).查 ...
- Unity 游戏框架搭建 2019 (八) 关于导出 UnityPackage 功能的小结
导出 UnityPackage 功能到这里要告一段落了,相信认真看的童鞋都有收获.笔者在写教程之前纠结了很久.到底是先给出一坨工具代码,然后再逐个讲解比较好,还是一篇一个知识点比较好.后来想通了.工具 ...
- select_related prefetch_related
# select_related与prefetch_related# # select_related帮你直接连表操作 查询数据 括号内只能放外键字段# # res = models.Book.obj ...
- 洛谷1880 区间dp+记忆化搜索 合并石子
题目网址:https://www.luogu.com.cn/problem/P1880 题意是:给定一个序列,最小规则是相邻两个值的合并,开销是他们的和,将整个序列合并成一个值的情况下,求解该值的最小 ...
- DOM中获取元素的节点兼容IE6-8封装,带jquery源码分析children
<ul id="box"> <li>第一个节点</li> <li>第二个节点</li> <li>第三个节点& ...
- C# 基础知识系列- 4 面向对象
面向对象 面向对象是一个抽象的概念,其本质就是对事物以抽象的方式建立对应的模型. 简单来讲,比如我有一只钢笔,那么我就可以通过分析,可以得到 这只钢笔的材第是塑料,品牌是个杂牌 ,里面装的墨是黑色的, ...
- MySQL优化之避免索引失效的方法
在上一篇文章中,通过分析执行计划的字段说明,大体说了一下索引优化过程中的一些注意点,那么如何才能避免索引失效呢?本篇文章将来讨论这个问题. 避免索引失效的常见方法 1.对于复合索引的使用,应按照索引建 ...
- 热点 | 近期Github热点项目库总结
整理 | Walker 介绍:你有没有想过你会成为一个艺术家,但无奈你不知道如何画画?得益于计算机视觉技术,你可以在ML社区轻松实现这个梦想.更棒的是,Github上ML社区的代码都是开源的! 这就是 ...
- n次方
1.问题描述 计算 an 2.算法分析 先将 n 变一变,寻找新的计算路径.预处理就是变治法的根本. 如果单纯循环执行 n 次相乘,那么时间复杂度为 O(n).可以利用二进制幂大大改进效率. 主要思路 ...