Genluo / Precipitation-and-Summary

梳理体系化的知识点&沉淀日常开发和学习
MIT License
16 stars 1 forks source link

《大数据技术》(一)大数据概述 #82

Open Genluo opened 4 years ago

Genluo commented 4 years ago

大数据时代到来

数据产生方式的变革,是促成大数据时代来临的重要因素。总体而言,人类社会的数据产生 方式大致经历了 3 个阶段:运营式系统阶段、用户原创内容阶段和感知式系统阶段

image-20190616220605899

1.运营式系统阶段

人类社会最早大规模管理和使用数据,是从数据库的诞生开始的。大型零售超市销售系统、 银行交易系统、股市交易系统、医院医疗系统、企业客户管理系统等大量运营式系统,都是建立 在数据库基础之上的,数据库中保存了大量结构化的企业关键信息,用来满足企业各种业务需求。 在这个阶段,数据的产生方式是被动的,只有当实际的企业业务发生时,才会产生新的记录并存 入数据库。比如,对于股市交易系统而言,只有当发生一笔股票交易时,才会有相关记录生成。

2.用户原创内容阶段

互联网的出现,使得数据传播更加快捷,不需要借助于磁盘、磁带等物理存储介质传播数据, 网页的出现进一步加速了大量网络内容的产生,从而使得人类社会数据量开始呈现“井喷式”增 长。但是,互联网真正的数据爆发产生于以“用户原创内容”为特征的 Web 2.0 时代。Web 1.0 时 代主要以门户网站为代表,强调内容的组织与提供,大量上网用户本身并不参与内容的产生。而 Web 2.0 技术以 Wiki、博客、微博、微信等自服务模式为主,强调自服务,大量上网用户本身就 是内容的生成者,尤其是随着移动互联网和智能手机终端的普及,人们更是可以随时随地使用手 机发微博、传照片,数据量开始急剧增加。

3.感知式系统阶段

物联网的发展最终导致了人类社会数据量的第三次跃升。物联网中包含大量传感器,如温度 传感器、湿度传感器、压力传感器、位移传感器、光电传感器等,此外,视频监控摄像头也是物 联网的重要组成部分。物联网中的这些设备,每时每刻都在自动产生大量数据,与 Web 2.0 时代 的人工数据产生方式相比,物联网中的自动数据产生方式,将在短时间内生成更密集、更大量的 数据,使得人类社会迅速步入“大数据时代”

大数据发展历程

大数据的发展历程总体上可以划分为 3 个重要阶段:萌芽期、成熟期和大规模应用期

image-20190616220710609

什么是大数据

随着大数据时代的到来,“大数据”已经成为互联网信息技术行业的流行词汇。关于“什么 是大数据”这个问题,大家比较认可关于大数据的“4V”说法。大数据的 4 个“V”,或者说是 大数据的 4 个特点,包含 4 个层面:

大数据带来的影响

大数据对科学研究、思维方式和社会发展都具有重要而深远的影响。在科学研究方面,大数据使得人类科学研究经历了实验、理论、计算 3 种范式之后,迎来了第四种范式——数据;在思维方式方面,大数据具有“全样而非抽样效率而非精确相关而非因果”三大显著特征,完全颠覆了传统的思维方式;在社会发展方面,大数据决策逐渐成为一种新的决策方式,大数据应用有力促进了信息技术与各行业的深度融合,大数据开发大大推动了新技术和新应用的不断涌现;在就业市场方面,大数据的兴起使得数据科学家成为热门人才;在人才培养方面,大数据的兴起将在很大程度上改变我国高校信息技术相关专业的现有教学和科研体制。

1、科学研究的影响

1.第一种范式:实验科学

在最初的科学研究阶段,人类采用实验来解决一些科学问题,著名的比萨斜塔实验就是一个 典型实例。1590 年,伽利略在比萨斜塔上做了“两个铁球同时落地”的实验,得出了重量不同的 两个铁球同时下落的结论,从此推翻了亚里士多德“物体下落速度和重量成比例”的学说,纠正 了这个持续了 1 900 年之久的错误结论。

2.第二种范式:理论科学

实验科学的研究会受到当时实验条件的限制,难以完成对自然现象更精确的理解。随着科学 的进步,人类开始采用各种数学、几何、物理等理论,构建问题模型和解决方案。比如,牛顿第 一定律、牛顿第二定律、牛顿第三定律构成了牛顿力学的完整体系,奠定了经典力学的概念基础, 它的广泛传播和运用对人们的生活和思想产生了重大影响,在很大程度上推动了人类社会的发展 与进步。

3.第三种范式:计算科学

随着 1946 年人类历史上第一台计算机 ENIAC 的诞生,人类社会开始步入计算机时代,科学 研究也进入了一个以“计算”为中心的全新时期。在实际应用中,计算科学主要用于对各个科学 问题进行计算机模拟和其他形式的计算。通过设计算法并编写相应程序输入计算机运行,人类可 以借助于计算机的高速运算能力去解决各种问题。计算机具有存储容量大、运算速度快、精度高、 可重复执行等特点,是科学研究的利器,推动了人类社会的飞速发展。

4.第四种范式:数据密集型科学

随着数据的不断累积,其宝贵价值日益得到体现,物联网和云计算的出现,更是促成了事物 发展从量变到质变的转变,使人类社会开启了全新的大数据时代。这时,计算机将不仅仅能做模 拟仿真,还能进行分析总结,得到理论。在大数据环境下,一切将以数据为中心,从数据中发现 问题、解决问题,真正体现数据的价值。大数据将成为科学工作者的宝藏,从数据中可以挖掘未 知模式和有价值的信息,服务于生产和生活,推动科技创新和社会进步。虽然第三种方式和第四 种方式都是利用计算机来进行计算,但是二者还是有本质的区别的。在第三种研究范式中,一般是先提出可能的理论,再搜集数据,然后通过计算来验证。而对于第四种研究范式,则是先有了 大量已知的数据,然后通过计算得出之前未知的理论。

2、思维方式

1.全样而非抽样

过去,由于数据存储和处理能力的限制,在科学分析中,通常采用抽样的方法,即从全集数 据中抽取一部分样本数据,通过对样本数据的分析来推断全集数据的总体特征。通常,样本数据 规模要比全集数据小很多,因此,可以在可控的代价内实现数据分析的目的。现在,我们已经迎 来大数据时代,大数据技术的核心就是海量数据的存储和处理,分布式文件系统和分布式数据库 技术提供了理论上近乎无限的数据存储能力,分布式并行编程框架 MapReduce 提供了强大的海量 数据并行处理能力。因此,有了大数据技术的支持,科学分析完全可以直接针对全集数据而不是 抽样数据,并且可以在短时间内迅速得到分析结果,速度之快,超乎我们的想象。就像前面我们 已经提到过的,谷歌公司的 Dremel 可以在 2~3s 内完成 PB 级别数据的查询。

2.效率而非精确

过去,我们在科学分析中采用抽样分析方法,就必须追求分析方法的精确性,因为抽样分析 只是针对部分样本的分析,其分析结果被应用到全集数据以后,误差会被放大,这就意味着,抽 样分析的微小误差被放大到全集数据以后,可能会变成一个很大的误差。因此,为了保证误差被 放大到全集数据时仍然处于可以接受的范围,就必要确保抽样分析结果的精确性。正是由于这个 原因,传统的数据分析方法往往更加注重提高算法的精确性,其次才是提高算法效率。现在,大 数据时代采用全样分析而不是抽样分析,全样分析结果就不存在误差被放大的问题。因此,追求 高精确性已经不是其首要目标;相反,大数据时代具有“秒级响应”的特征,要求在几秒内就迅 速给出针对海量数据的实时分析结果,否则就会丧失数据的价值,因此,数据分析的效率成为关 注的核心。

3.相关而非因果

过去,数据分析的目的,一方面是解释事物背后的发展机理,比如,一个大型超市在某个地 区的连锁店在某个时期内净利润下降很多,这就需要 IT 部门对相关销售数据进行详细分析找出发 生问题的原因;另一方面是用于预测未来可能发生的事件,比如,通过实时分析微博数据,当发 现人们对雾霾的讨论明显增加时,就可以建议销售部门增加口罩的进货量,因为人们关注雾霾的 一个直接结果是,大家会想到购买一个口罩来保护自己的身体健康。不管是哪个目的,其实都反 映了一种“因果关系”。但是,在大数据时代,因果关系不再那么重要,人们转而追求“相关性” 而非“因果性”。比如,我们去淘宝网购物时,当我们购买了一个汽车防盗锁以后,淘宝网还会自 动提示你,与你购买相同物品的其他客户还购买了汽车坐垫,也就是说,淘宝网只会告诉你“购 买汽车防盗锁”和“购买汽车坐垫”之间存在相关性,但是并不会告诉你为什么其他客户购买了 汽车防盗锁以后还会购买汽车坐垫。

3、社会发展的影响

1.大数据决策成为一种新的决策方式

根据数据制定决策,并非大数据时代所特有。从 20 世纪 90 年代开始,数据仓库和商务智能 工具就开始大量用于企业决策。发展到今天,数据仓库已经是一个集成的信息存储仓库,既具备 批量和周期性的数据加载能力,也具备数据变化的实时探测、传播和加载能力,并能结合历史数 据和实时数据实现查询分析和自动规则触发,从而提供对战略决策(如宏观决策和长远规划等) 和战术决策(如实时营销和个性化服务等)的双重支持。但是,数据仓库以关系数据库为基础, 无论是数据类型还是数据量方面都存在较大的限制。现在,大数据决策可以面向类型繁多的、非 结构化的海量数据进行决策分析,已经成为受到追捧的全新决策方式。比如,政府部门可以把大 数据技术融入“舆情分析”,通过对论坛、微博、微信、社区等多种来源数据进行综合分析,弄清 或测验信息中本质性的事实和趋势,揭示信息中含有的隐性情报内容,对事物发展做出情报预测, 协助实现政府决策,有效应对各种突发事件。

2.大数据应用促进信息技术与各行业的深度融合

有专家指出,大数据将会在未来 10 年改变几乎每一个行业的业务功能。互联网、银行、保险、 交通、材料、能源、服务等行业领域,不断累积的大数据将加速推进这些行业与信息技术的深度 融合,开拓行业发展的新方向。比如,大数据可以帮助快递公司选择运费成本最低的最佳行车路 径,协助投资者选择收益最大化的股票投资组合,辅助零售商有效定位目标客户群体,帮助互联 网公司实现广告精准投放,还可以让电力公司做好配送电计划确保电网安全等。总之,大数据所 触及的每个角落,我们的社会生产和生活都会因之而发生巨大且深刻的变化。

3.大数据开发推动新技术和新应用的不断涌现

大数据的应用需求是大数据新技术开发的源泉。在各种应用需求的强烈驱动下,各种突破性 的大数据技术将被不断提出并得到广泛应用,数据的能量也将不断得到释放。在不远的将来,原 来那些依靠人类自身判断力的领域应用,将逐渐被各种基于大数据的应用所取代。比如,今天的 汽车保险公司,只能凭借少量的车主信息,对客户进行简单类别划分,并根据客户的汽车出险次 数给予相应的保费优惠方案,客户选择哪家保险公司都没有太大差别。随着车联网的出现,“汽车 大数据”将会深刻改变汽车保险业的商业模式,如果某家商业保险公司能够获取客户车辆的相 关细节信息,并利用事先构建的数学模型对客户等级进行更加细致的判定,给予更加个性化的

“一对一”优惠方案,那么毫无疑问,这家保险公司将具备明显的市场竞争优势,获得更多客户 的青睐。

大数据的应用

image-20190616221411419

大数据关键技术

大数据技术,是指伴随着大数据的采集、存储、分析和应用的相关技术,是一系列使用非传统的 工具来对大量的结构化、半结构化和非结构化数据进行处理,从而获得分析和预测结果的一系列 数据处理和分析技术。

大数据技术主要包括:

image-20190616221708207

需要指出的是,大数据技术是许多技术的一个集合体,这些技术也并非全部都是新生事物,诸如关系数据库、数据仓库、数据采集、ETL、OLAP、数据挖掘、数据隐私和安全、数据可视化等技术是已经发展多年的技术,在大数据时代得到不断补充、完善、提高后又有了新的升华,也可以视为大数据技术的一个组成部分。重点阐述近些年新发展起来的大数据核心技术,包括分布式并行编程、分布式文件系统、分布式数据库、NoSQL 数据库、云数据库、流计算、图计算等

大数据计算模式

MapReduce 是被大家所熟悉的大数据处理技术,当人们提到大数据时就会很自然地想到 MapReduce,可见其影响力之广。实际上,大数据处理的问题复杂多样,单一的计算模式是无 法满足不同类型的计算需求的,MapReduce 其实只是大数据计算模式中的一种,它代表了针对 大规模数据的批量处理技术,除此以外,还有查询分析计算、图计算、流计算等多种大数据计算模式

image-20190616221912928

1、批处理计算

批处理计算主要解决针对大规模数据的批量处理,也是我们日常数据分析工作中非常常见的 一类数据处理需求。MapReduce 是最具有代表性和影响力的大数据批处理技术,可以并行执行大 规模数据处理任务,用于大规模数据集(大于 1 TB)的并行运算。MapReduce 极大地方便了分布 式编程工作,它将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数——Map 和 Reduce 上,编程人员在不会分布式并行编程的情况下,也可以很容易地将自己的程序运行在分 布式系统上,完成海量数据集的计算。

Spark 是一个针对超大数据集合的低延迟的集群分布式计算系统,比 MapReduce 快许多。Spark 启用了内存分布数据集,除了能够提供交互式查询外,还可以优化迭代工作负载。在 MapReduce 中,数据流从一个稳定的来源进行一系列加工处理后,流出到一个稳定的文件系统(如 HDFS)。 而对于 Spark 而言,则使用内存替代 HDFS 或本地磁盘来存储中间结果,因此 Spark 要比 MapReduce 的速度快许多。

2、流计算

流数据也是大数据分析中的重要数据类型。流数据(或数据流)是指在时间分布和数量 上无限的一系列动态数据集合体,数据的价值随着时间的流逝而降低,因此必须采用实时计 算的方式给出秒级响应。流计算可以实时处理来自不同数据源的、连续到达的流数据,经过 实时分析处理,给出有价值的分析结果。目前业内已涌现出许多的流计算框架与平台,第一 类是商业级的流计算平台,包括 IBM InfoSphere Streams 和 IBM StreamBase 等;第二类是开 源流计算框架,包括 Twitter Storm、Yahoo! S4(Simple Scalable Streaming System)、Spark Streaming 等;第三类是公司为支持自身业务开发的流计算框架,如 Facebook 使用 Puma 和 HBase 相结合来处理实时数据,百度开发了通用实时流数据计算系统 DStream,淘宝开发了通 用流数据实时计算系统——银河流数据处理平台。

3、图计算

在大数据时代,许多大数据都是以大规模图或网络的形式呈现,如社交网络、传染病传播途 径、交通事故对路网的影响等,此外,许多非图结构的大数据也常常会被转换为图模型后再进行 处理分析。MapReduce 作为单输入、两阶段、粗粒度数据并行的分布式计算框架,在表达多迭代、稀疏结构和细粒度数据时,往往显得力不从心,不适合用来解决大规模图计算问题。因此,针对 大型图的计算,需要采用图计算模式,目前已经出现了不少相关图计算产品。Pregel 是一种基于 BSP(Bulk Synchronous Parallel)模型实现的并行图处理系统。为了解决大型图的分布式计算问题, Pregel 搭建了一套可扩展的、有容错机制的平台,该平台提供了一套非常灵活的 API,可以描述 各种各样的图计算。Pregel 主要用于图遍历、最短路径、PageRank 计算等。其他代表性的图计算 产品还包括 Facebook 针对 Pregel 的开源实现 Giraph、Spark 下的 GraphX、图数据处理系统 PowerGraph 等。

4、查询分析计算

针对超大规模数据的存储管理和查询分析,需要提供实时或准实时的响应,才能很好地满足 企业经营管理需求。谷歌公司开发的 Dremel 是一种可扩展的、交互式的实时查询系统,用于只读 嵌套数据的分析。通过结合多级树状执行过程和列式数据结构,它能做到几秒内完成对万亿张表 的聚合查询。系统可以扩展到成千上万的 CPU 上,满足谷歌上万用户操作 PB 级的数据,并且可 以在 2~3s 内完成 PB 级别数据的查询。此外,Cloudera 公司参考 Dremel 系统开发了实时查询引 擎 Impala,它提供 SQL 语义,能快速查询存储在 Hadoop 的 HDFS 和 HBase 中的 PB 级大数据。

大数据与云计算、物联网

云计算、大数据和物联网代表了 IT 领域最新的技术发展趋势,三者相辅相成,既有联系又有 区别。为了更好地理解三者之间的紧密关系,下面将首先简要介绍云计算和物联网的概念,再分 析云计算、大数据和物联网的区别与联系。

1、云计算

云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入 条件的地方,就可以随时随地获得所需的各种 IT 资源。云计算代表了以虚拟化技术为核心、以低 成本为目标的、动态可扩展的网络应用基础设施,是近年来最有代表性的网络计算技术与模式。

(1) 服务模式和类型

云计算包括 3 种典型的服务模式(见图 1-7),即 IaaS(基础设施即服务)、PaaS(平台即服 务)和 SaaS(软件即服务)。IaaS 将基础设施(计算资源和存储)作为服务出租,PaaS 把平台作 为服务出租,SaaS 把软件作为服务出租。

image-20190616222448231

云计算包括公有云、私有云和混合云 3 种类型(见图 1-7)。公有云面向所有用户提供服务, 只要是注册付费的用户都可以使用,比如 Amazon AWS;私有云只为特定用户提供服务,比如大 型企业出于安全考虑自建的云环境,只为企业内部提供服务;混合云综合了公有云和私有云的特 点,因为对于一些企业而言,一方面出于安全考虑需要把数据放在私有云中,另一方面又希望可 以获得公有云的计算资源,为了获得最佳的效果,就可以把公有云和私有云进行混合搭配使用。

(2) 关键技术

云计算的关键技术包括虚拟化、分布式存储、分布式计算、多租户等。

虚拟化技术是云计算基础架构的基石,是指将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率
Hyper-V、VMware、KVM、Virtualbox、Xen、Qemu 等都是非常典型的虚拟化技术。Hyper-V 是微软的一款虚拟化产品,旨在为用户提供成本效益更高的虚拟化基础设施软件,从而为用户降 低运作成本,提高硬件利用率,优化基础设施,提高服务器的可用性。VMware(威睿)是全球 桌面到数据中心虚拟化解决方案的领导厂商。
近年来发展起来的容器技术(如 Docker),是不同于 VMware 等传统虚拟化技术的一种新型轻量 级虚拟化技术(也被称为“容器型虚拟化技术”)。与 VMware 等传统虚拟化技术相比,Docker 容器 具有启动速度快、资源利用率高、性能开销小等优点,受到业界青睐,并得到了越来越广泛的应用。
GFS(Google File System)是谷歌公司推出的一款分布式文件系统,可以满足大型、分布式、 对大量数据进行访问的应用的需求。GFS 具有很好的硬件容错性,可以把数据存储到成百上千台服 务器上面,并在硬件出错的情况下尽量保证数据的完整性。GFS 还支持 GB 或者 TB 级别超大文件 的存储,一个大文件会被分成许多块,分散存储在由数百台机器组成的集群里。HDFS(Hadoop Distributed File System)是对 GFS 的开源实现,它采用了更加简单的“一次写入、多次读取”文件 模型,文件一旦创建、写入并关闭了,之后就只能对它执行读取操作,而不能执行任何修改操作;
面对海量的数据,传统的单指令单数据流顺序执行的方式已经无法满足快速数据处理的要求,谷歌公司提出了并行编程模型 MapReduce,让任何人都可以在短时间 内迅速获得海量计算能力,它允许开发者在不具备并行开发经验的前提下也能够开发出分布式的 并行程序,并让其同时运行在数百台机器上,在短时间内完成海量数据的计算。MapReduce 将复 杂的、运行于大规模集群上的并行计算过程抽象为两个函数——Map 和 Reduce,并把一个大数据 集切分成多个小的数据集,分布到不同的机器上进行并行处理,极大提高了数据处理速度,可以 有效满足许多应用对海量数据的批量处理需求
多租户技术目的在于使大量用户能够共享同一堆栈的软硬件资源,每个用户按需使用资源,能够对软件服务进行客户化配置,而不影响其他用户的使用。多租户技术的核心包括数据隔离、客户化配置、架构扩展和性能定制
(3) 云计算中心

云计算数据中心是一整套复杂的设施,包括刀片服务器、宽带网络连接、环境控制设备、监控设备以及各种安全装置等。数据中心是云计算的重要载体,为云计算提供计算、存储、带宽等各种硬件资源,为各种平台和应用提供运行支撑环境

(4) 云计算产业链

image-20190616223046038

2、物联网

物联网是物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式连在一起,形成人与物、物与物相连,实现信息化和远程管理控制。

从技术架构上来看,物联网可分为四层(见图 1-9):感知层、网络层、处理层和应用层

image-20190616223242583

image-20190616223307814

(1) 关键技术

物联网是物与物相连的网络,通过为物体加装二维码、RFID 标签、传感器等,就可以实现 物体身份唯一标识和各种信息的采集,再结合各种类型网络连接,就可以实现人和物、物和物之 间的信息交换。因此,物联网中的关键技术包括识别和感知技术(二维码、RFID、传感器等)、 网络与通信技术、数据挖掘与融合技术等。

(1)识别和感知技术

(2)网络与通信技术

(3)数据挖掘与融合技术

(2) 产业链条

image-20190616223525697

大数据、云计算、物联网三者关系

云计算、大数据和物联网代表了 IT 领域最新的技术发展趋势,三者既有区别又有联系。云 计算最初主要包含了两类含义:一类是以谷歌的 GFS 和 MapReduce 为代表的大规模分布式并行 计算技术;另一类是以亚马逊的虚拟机和对象存储为代表的“按需租用”的商业模式。但是, 随着大数据概念的提出,云计算中的分布式计算技术开始更多地被列入大数据技术,而人们提 到云计算时,更多指的是底层基础 IT 资源的整合优化以及以服务的方式提供 IT 资源的商业模 式(如 IaaS、PaaS、SaaS)。从云计算和大数据概念的诞生到现在,二者之间的关系非常微妙, 既密不可分,又千差万别。因此,我们不能把云计算和大数据割裂开来作为截然不同的两类技 术来看待。此外,物联网也是和云计算、大数据相伴相生的技术。下面总结一下三者的联系与 区别(见图 1-14)。

image-20190616223757548

区别

大数据、云计算和物联网的区别。大数据侧重于对海量数据的存储、处理与分析,从海量数据中发现价值,服务于生产和生活;云计算本质上旨在整合和优化各种 IT 资源,并通过网络以服务的方式廉价地提供给用户;物联网的发展目标是实现物物相连,应用创新是物联网发展的核心。

联系

从整体上看,大数据、云计算和物联网这三者是相辅相成的。大数据根植于云计算,大数据分析的很多技术都来自于云计算,云计算的分布式数据存储和管理系统(包括分布式文件系统和分布式数据库系统)提供了海量数据的存储和管理能力,分布式并行处理框架 MapReduce 提供了海量数据分析能力,没有这些云计算技术作为支撑,大数据分析就无从谈起。反之,大数据为云计算提供了“用武之地”,没有大数据这个“练兵场”,云计算技术再先进,也不能发挥它的应用价值。物联网的传感器源源不断产生的大量数据,构成了大数据的重要数据来源,没有物联网的飞速发展,就不会带来数据产生方式的变革,即由人工产生阶段转向自动产生阶段,大数据时代也不会这么快就到来。同时,物联网需要借助于云计算和大数据技术,实现物联网大数据的存储、分析和处理。