大数据技术平台就是一个生态圈,生态圈里面的各类技术让人眼花缭乱,即便是资深工程师也需要学习跟实践很多年才有一些积累,非专业的人去看当然晕了!因此我们需要把这么一大堆的内容分解开,找出关键的部分,用形象比喻的方式,更容易得让广大初学者从整体架构上有一个概念,形成一种叫做大数据思维的东西!

咱们一步步分解,先上个图,看看常用的技术有哪些,下面是按照大数据软件层次的划分图:

大数据平台层次架构图

大数据平台层次架构图

打开网易新闻 查看精彩图片

我节选了一些我给咨询客户的素材,当然不能给全了!望谅解。

从图中你可以看到大数据平台从宏观上,可以从架构、存储、计算和工具,自底向上去划分,每一种技术都有其专注的领域。

你可以这么理解Hadoop的分布式文件系统hdfs:就是一艘货轮,平台式管理着集装箱,顺序的存放,顺序的卸载。而集装箱里面的货品布置方式,就衍生出了很多特色存储管理模式,例如hbase,它就想在集装箱里面再整上一排排存放箱的设计,这样方便它的编排,Hadoop就随便它喽,反正我是平台,集装箱里面的内容给你们上面的团队自由,随意折腾。

你也可以这么去理解spark:他是一个优秀的企业员工,成长在Hadoop这个大企业里,实在看不上MapReduce(批处理引擎)效率低下的办事风格,自己用突出的成绩证明自己比他能,而且又从一个人发展出了一个团队,都是各个场面的小能手。

例如:spark core专注做海量处理和平台化,spark streaming做实时处理,spark SQL做SQL访问工具和解释优化,spark mllib做机器学习库,spark graphx做图处理,这么个团队组合在一起相当强悍了,感觉能成立独立事业部了,动不动还能和非Hadoop体系的nosql亲密合作!直接叫板Hadoop平台的地位。

你同样从宏观上也可以把Hadoop理解为一家生产工厂。有采购,有车间,有仓库,当然也有管理层以及保安部门。

仓库就是hdfs,namenode就是库管员,datanode就是货品存放室。车间就是MapReduce,map就是分拣,reduce就是加工,map到reduce的,shuffle就是流水线,整个流程就是生产制造工艺,yarn就是车间主任啦!

工厂总要采购和供应,flume,hive,sqoop就是面向不同外部需要的对接部门。

安全总要考虑吧,Hadoop的认证,加密就是保卫部门了。当然了厂子必须适应新形势的需要,实现快进快出,都是从厂里大仓库拿货,但代理商自己按不同区域客户名录编排存放,这就是HBASE。

其实理解了Hadoop,就是理解了什么是大数据技术的一个思维体系,上面的图只是了解到了大数据生态的一部分技术,关键是理解架构上的逻辑。咱们继续看看大数据的平台如何去协作的,我们再上一个图:

大数据关键组件关系架构图

大数据关键组件关系架构图

打开网易新闻 查看精彩图片

一样我截取了一些内容分享出来,这是一个架构,叫lambda架构,是storm作者提出来的,这牛人就觉得,大数据平台就能批处理是不行的,有时候一天出一个结果太慢了,如果加上我设计的storm实时计算,一秒内就能计算一个结果,那才正宗。

可是问题出来了,实时处理走的是先计算再写库(所谓的狼吞虎噎的吃法),批处理反过来先写库再计算(感觉就像牛先吃草,晚上再咀嚼),支持批处理模式的人就认为先存数据很重要,要是数据处理服务挂了,数据依然是好好的,可以重来,但要先做计算,万一计算处理服务挂了,数据存不进去,整体就损坏了。

这个问题其实没有难住storm作者,他设计出lambda架构,将大数据实时处理和批处理进行了融合,一边先计算再存当天看实时结果,另一边也先存着原生数据,慢慢计算,隔一天就从批量重新取结果,也就是说数据出错总会被消灭在一天内。他分了三层,服务层专门做整合,批处理层专门做历史计算,速度层专门处理实时数据,牛逼吧。

好了,说完了技术体系,实践架构,我们再说说又是nosql,又是Hadoop,又是SQL,它们到底咋协作。我们再看个图:

Lambda大数据架构模式图

Lambda大数据架构模式图

打开网易新闻 查看精彩图片

上面就是一个比较细致的大数据架构应用的组合拳了,你会发现Hadoop的上层可以有nosql,例如HBASE,nosql也可以独立存在不依赖Hadoop,例如MongoDB,elk。那么nosql到底是啥,直译过来就是“我不是SQL”。

其实说白了,nosql几乎所有的存储系统的目标都是用大量廉价的机器跑分布式的数据存储,实现吞吐与负载的水平伸缩,不用原来昂贵的,难以扩展的单机型关系数据库了,例如Oracle,机器上了小机,搞了集群,还要许可费,贵得要死不说,性能依然提升不大。

另外图上为什么会有hiveSQL,sparkSQL,就是因为Hadoop,spark这些大数据资源不能只给程序员用啊,学Java,再研究算法,会累死数据分析师的,专业的人干专业的事情,因此让数据分析师通过SQL也能上大数据平台这就是目标。

hive目前可以安装三种计算引擎,MapReduce,tez,spark,tez未来就是hive官方认定的啦,MapReduce逐渐成为教练机。hive还是大数据平台大家互相认可的元数据存储的事实标准,很重要,它依赖于MySQL等关系型数据库,因此大数据平台依然有这关系型数据库的身影。

最后还有些不错的工具,例如ooiz,你只要搞过工作流,就应该清楚,工作流workflow是主要面向业务表单的流程化提交,审核与管理,ooiz居然用workflow的思路,改成了大数据计算与存储的数据计算流程执行管理,你说牛不牛。

好就聊这么多吧,无论你是不是想从事大数据行业,懂得大数据知识总是益处良多的。

我们是“读字节”大数据技术专家团队,感谢您的关注!