2018-12-29 09:27:48 来源:简书
“大数据”这个概念是近几年开始火起来的,现在可谓是无处不在了。在了解什么是大数据之前,我们先了解一下什么是传统数据?
传统数据就是IT业务系统里面的数据,如客户资料、财务数据等。这些数据是结构化的,量也不是特别大,一般只是TB级。对比传统数据,还有一种叫“新数据”,是来源于社区网络、互联网等渠道,包括文本、图片、音频、视频等非结构化的数据。目前全世界75%以上都是非结构化数据,而且还一直呈现爆炸性的增长。我们看看下面的图就更好理解了:
大数据就是:结构化的传统数据+非结构化的新数据。
因而,大数据还具有以下特点,简称“4V”:
第二步:大数据组成
大数据系统由基础设施、平台和应用组成。对比我们平时使用的电脑,基础设施就是电脑这台硬件,平台就是装在里面的操作系统,应用就是操作系统上面的各种应用程序。
大数据的应用五花八门,但总体上可分为“业务应用”和“数据分析”两大类。
前者包括ERP、CRM等业务系统,后者指的是各种分析应用,包括经营分析、价值分析、人流分析等等。分析系统从业务系统获取源数据,经过分析后可以反哺业务系统,对其进行赋能(注智),让其具有智慧。说到这里,大家是不是觉得有点熟悉了?跟我们的BI是不是有某些联系呢?没错了,“大数据平台”和“数据分析系统”加在一起就是BI的升级版啊!既然是升级版,它与传统BI有什么区别呢?请看下面就知道啦。
成本更低廉
去IOE,硬件采用廉价的X86,软件更多使用开源,节省成本
容灾性好
平台部署在X86集群上,机器出问题可随时切换
扩展性好
X86集群可根据需要随时进行扩展,提高灵活性
处理效率高
当数据达到TB级别,处理效率显著提高
处理类型多
可以处理结构化、半结构化、非结构化数据
进一步挖掘价值
处理的数据量大,类型多,因而可进一步挖掘数据的价值。
是不是有很多升级的地方呢?为了支持这些升级,大数据系统需要具备哪些功能呢?这就涉及到架构问题了,跟着小麦继续往下看吧。
第三步:大数据架构
我们已经知道大数据系统由基础设施、平台和应用组成,我们现在进一步细分,请看下图:
基础设施由通过局域网或互联网连接的X86集群组成,为大数据平台提供最基本的硬件支持。
大数据平台由基础架构、数据处理和数据服务三部分组成:
基础架构负责对基础设施进行系统管理,为数据处理提供分布式底层服务;数据处理负责数据的采集、存储、计算;数据服务负责将处理后的数据提供给上层应用使用。大数据应用是面向用户的各种应用系统,包括业务应用和数据分析。大数据系统的总体架构就是这样子,是不是跟我们平时见到的BI架构很像呢? 通过这个表格对比我们就更清楚了:
下面我们将围绕这个架构展开说明。理解了这个架构,小麦的目的也就达到啦。
第四步:虚拟化
基础设施提供计算、存储、网络三种能力,是大数据平台的根基。但是如何解决以下问题:
大量的机器如何管理
当集群的状态改变,也即增加或者减少一些机器的时候,难道要去修改平台的配置吗?
如何充分利用系统资源
当集群的能力只使用了一部分,而这个时候需要一部新的机器用来部署其它系统,难道是从集群上拆下一部机器来提供吗?
如何解决弹性问题
当高峰期的时候,系统可能需要20部机器,平时只需要10部。那么我们是提供多少部合适呢?如果提供20部,平时空闲下来的10部如何处理?
这些问题有一种解决方法:虚拟化。就是把集群作为一个整体进行管理,可以根据需要从某些机器中调配相关资源,快速组成一部“新的机器”。例如可以用机器A的CPU1/2性能、1/3的内存,和机器B的1/5硬盘组成。
当集群的状态改变时,我们只需要修改虚拟化软件的配置,减少对平台的影响。当集群有多余的资源时,可以虚拟出一些新的机器给其它系统使用,充分利用了系统资源。
虚拟化的主流商业软件是Vmware,开源的软件有Xen、KVM等。
第五步:云化
虚拟化虽然带来资源配置的灵活性,但也有明显的缺陷。配置一部“新的机器”需要人工操作,配置非常麻烦,最多只能管理几百台电脑的规模,作为企业内部的应用是可以的。但对于提供公众服务的互联网公司来说,需要上万部电脑的规模,通过虚拟化的方式是行不通的。所以又有了新技术的出现:云化,也即把基础设施作为一项服务提供。请看下图:
最早是亚马逊基于自身电商业务的发展,传统的IT架构已经满足不了需求,所以基于开源的虚拟化软件开发了AWS(Amazon Web Service),可以支持超大规模的集群应用。在解决自己的业务需求后,亚马逊发现可以把这项技术作为一项单独的业务推向市场,这就是现在稳居全球市场头把交椅的的亚马逊云服务。同样的背景,阿里巴巴也基于Xen推出了市场化的阿里云,现成已经成为国内云市场的老大。由此我们也知道为什么云服务做得最早、最好的都是互联网公司了吧?因为他们有自身的业务在驱动。规模上万部的机器,以资源池(数据中心)的形式分布在不同的地域上(很多建设在广西、贵州、内蒙等欠发达省份,电费、人工比较便宜,又可以促进当地就业),通过调度中心进行统一管理,这就是公有云平台。
在亚马逊开展商业化云服务的同时,美国另一家叫Rackspace的公司也推出OpenStack在跟亚马逊竞争。无奈竞争不过人家,最后决定和NASA(美国国家航空航天局)合作,把OpenStack开源,一起成立了开源云平台。后来各家传统的IT巨头纷纷加入这个开源的社区,经过二次开发和包装后推出了自己的私有云平台,和自家的硬件或解决方案打包一起销售。
不管是公有云,还是私有云,都是实现了基础设施的时间灵活性和空间灵活性,把基础设施作为一项服务提供,也即:Infranstracture as a Service(IaaS)
第六步:Hadoop
大数据平台的基础架构采用Hadoop,包括HDFS和MapReduce两部分:
那么,如何把Hadoop安装到集群下面那么多机器上呢?每部机器的配置、操作系统都可能不一样。
解决办法就是采用“容器“技术:先将Hadoop打包到一个封闭的容器中,再统一发布到各部机器上。容器能够根据机器实际环境做出相应的调整,保证Hadoop的顺利安装。(类似用统一规格的集装箱来运送货物)
容器的主流技术是开源的Docker。不仅仅是Hadoop可以通过容器进行安装,所有的应用都可以使用。
现在已经在集群下每部机器安装了Hadoop,那么Hadoop是如何运行的呢?请看下图:
Hadoop把集群下其中一个节点拿来当Master,其它节点当Slave。对于HDFS来说,Master就是NameNode,负责管理文件系统的命名空间和控制客户端访问;Slave就是DataNode,负责管理存储的数据。对于MapReduce来说,Master就是JobTracker,负责调度构成一个作业的所有任务,这些任务分布在不同的TaskTracker上;Slave就是TaskTracker,负责执行由JobTracker指派的任务。
Hadoop已经衍生出很多不同的升级版本,目前应用最成熟、最广泛的是Spark。
第七步:数据处理
数据处理是对数据的采集、存储和计算。因为大数据有各种各样的应用,不同的应用,数据的种类、结构,数据的实时性要求都可能不同。所以要根据实际情况进行数据库选型,这是大数据平台设计的关键,将影响到整个平台的整体性能。不同的数据库类型可以进行混搭,同时采用不同的ETL技术。
目前常见的各种数据库类型如下:
传统数据库
主流数据库有Oracle、DB2、MySQL,主要应用于小规模应用系统,或者为了利用已有的资源,同时降低系统升级的风险,采用的ETL技术是Datastage、Kettle等。
内存数据库
主流数据库有SQLite、HANA,主要应用于对实时性要求高,需要实时处理的数据,如实时指标展示,精准营销等,采用的ETL技术是流处理技术kafka。
MPP数据库
MPP是指大规模并行处理,MPP数据库支持X86集群,常见的有Greanplum、Vertica等,主要应用于大规模结构化数据分析,如信令分析、DPI分析,一般采用Kettle作为ETL工具。
NoSQL数据库
NoSQL是指半结构化或非结构化数据库,主流的数据库有MongoDB、HBase和HDFS等,HBase用来存储半结构化或结构很稀疏的数据,HDFS用来存储非结构化数据。HBase和HDFS都不支持SQL,需要使用Hive作为SQL接口执行一些简单的查询操作。NoSQL数据库基于Hadoop平台,主要应用于大规模半/非结构化离线分析,例如互联网数据分析、文档分析等,一般采用网络爬虫技术进行ETL。
第八步:数据服务
经过处理后的数据,一般不提供给上层应用直接用SQL访问,这一点与数据仓库不同。数据仓库把采集过来的数据经过处理后存储在汇总层,上层应用直接用SQL访问。但大数据平台把处理后的数据进行封装和分类,为上层应用提供可灵活调用的数据服务接口,可以保证数据访问的规范性和安全性。接口的承载方式有:文件、消息、API、SDK、界面集成,其流程如下:
数据格式化
对原始数据进行格式化,过滤字段并进行排序。
数据封装
对格式化后的数据及其元数据进行封装,以实现对外一致、标准化的数据访问接口。
数据分类
根据封装后的数据,按主题进行接口分类。
数据服务
上层应用可通过数据服务接口调用数据,实现数据的服务功能。
数据服务接口屏蔽掉大数据平台的所有细节,把平台作为一项服务提供给应用使用,这种方式称之为Platform as a service(PaaS)。
在公有云提供商中,一般都会有对应的PaaS服务提供,如阿里云的EDAS(企业级分布式应用服务)。
私有云是企业自建,对数据访问的控制没那么严格。为了开发效率,应用通常可以通过SQL直接访问数据。
第九步:大数据应用
前面小麦已经为大家介绍了基础设施和大数据平台,也介绍了私有云和公有云的区别。对于大数据应用来说,私有云上的应用,就是我们平时说的企业信息化系统,只不过这些系统是采用大数据的架构。而公有云上的应用,指的是我们平时使用的互联网服务,如微信、微博、支付宝等。但是,随着云服务市场的发展,越来越多的传统IT厂商也通过公有云为公众提供服务,比如我们熟悉的 MicrosoftOffice 365。这种把软件作为服务提供的方式称之为:Software as a Service(SaaS)。
在国际市场,比较常见的企业级SaaS服务有客户管理服务Saleforce、团队协同服务Google Apps等等。国内市场的金蝶、微软、Oracle也都提供多种SaaS产品和服务。我们可以看一下IDC对2017-2022年中国公有云整体市场的预测(单位:百万美元):
从上表可以看出,整个云服务市场的年复合增长率达到了41%,其中PaaS服务增长最快,达到了55.7%。中国企业级SaaS市场份额全球第二,未来五年依旧呈现快速增长态势,年复合增长率达到35.7%。到了2022年,整个SaaS市场规模达到400亿人民币。
第十步:云计算
大家有没有发现,前面说了那么久,还没提到云计算呢?其实前面都是铺垫,现在就要给大家介绍云计算了。云计算就是一种IT架构,是一种IT资源的交付和使用模式。前面介绍的IaaS、PaaS、SaaS就是云计算架构下对不同资源的交付模式,分别将基础设施、平台、软件以服务的形式提供给用户使用。
到目前为止,小麦已经把相关的概念都介绍给大家了。我们把前面的大数据架构图进一步细化,大家是否看得懂了呢?
如果大家看懂了,那小麦本次的介绍也算功德圆满了。如果还没看懂,请跳到第一步再看一遍,哈哈。。。。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。