第1章 大数据计算系统概述

1.1 大数据计算系统的定义

1.1.1 大数据

对计算机系统而言,数据(data)主要由1和0组成的二进制数系统表示。数据通过人类的采集、录入等活动而生成,可以用于描述客观世界。数据是信息的载体,信息是业务的描述,而知识是信息中蕴含的科学意义,其结构关系如图1-1所示。在图1-2中,30被解释成购买的书的数量,然后利用计算机科学、统计学、人工智能等知识进行分析,由用户的购买信息可以得到关于用户购买行为的知识。

图1-1 数据、信息与知识的结构关系

图1-2 数据与信息

早期,数据主要指对客观世界测量结果的记录。随着科学的进步,数据的范畴不断扩大,文本、图片、视频等都被称为数据。随着信息化的飞速发展,数据规模完成了KB→GB→TB→PB→YB的演进,数据量单位从KB级跃升到YB级。数据量单位的换算关系如表1-1所示。

表1-1 数据量单位的换算关系

根据统计,到2025年,全球每天产生的数据量有望达到463EB。谷歌、Meta、微软和亚马逊存储了至少1200PB的数据。

对于大数据的特征,业界通常引用国际数据公司(International Data Corporation,IDC)定义的4V来描述。

1)多样性(Variety):除了结构化数据外,大数据还包括各类非结构化数据(如文本、音频、视频、流量、文件记录等),以及半结构化数据(如电子邮件、办公处理文档等)。

2)速度快(Velocity):大数据处理的结果通常具有时效性,只有把握好数据流的应用,才能最大化地挖掘大数据所隐藏的价值。

3)数据量大(Volume):虽然数据量的统计和预测结果并不完全相同,但业界一致认为数据量将急剧增长。

4)价值密度低(Value):大数据有高价值,但需要对大规模的数据进行计算才能体现其价值。一方面,有价值的数据往往隐藏在大量无用数据中;另一方面,只有数据规模够大,对其进行分析得到的结果才有统计学意义。这使得单位数据的价值变低。

阿姆斯特丹大学的Yuri Demchenko等人提出了大数据架构的5V特征,如图1-3所示,它在4V特征的基础上增加了真实性(Veracity),真实性特征中包括可信性、真伪性、来源和信誉、有效性和可审计性。

数据可以转换成信息,进而提炼出知识来指导人们实际的生产与生活。淘宝购物的商品推荐、百度知识搜索、社交网络的好友推荐、个性化诊疗中的医生推荐等,无不体现了数据中蕴含的价值。无论是企业数据(如CRM、系统中的消费者数据、传统的ERP数据、库存数据及账目数据等)、系统日志和感知数据(呼叫记录、智能仪表数据、工业设备传感器收集的数据、设备日志和交易数据等),还是社交数据(用户行为记录、反馈数据等),都具有规模大、速度快、多源异构、价值密度低的特征。将这些数据集成于大数据平台,结合计算机科学、统计学等知识对数据进行合理的分析,才能提炼出数据中的价值。

图1-3 大数据的5V特征

1.1.2 大数据计算

大数据具有规模巨大、变化速度快、多源异构、价值密度低等特征,其价值必须借助计算机强大的计算能力才能实现,这就对大数据计算提出了要求。大数据计算是大数据算法的执行过程,而大数据算法是求解大数据计算问题的方法。

大数据的管理、分析、挖掘等各个阶段都存在大数据计算问题,下面是一些行业中的大数据计算问题的例子。

❑ 在科学研究中,天文学家把通过望远镜观察到的现象以数据形式记录到计算机中,进行数据分析。

❑ 在工业生产中,基于工业大数据发现关联规则,应用关联规则的分类提前发现半成品中的瑕疵,避免资源浪费。

❑ 在飞行管理中,利用大数据实现故障诊断和预测,实现实时自适应控制、燃油使用、零件故障预测和飞行员通报。

❑ 在社会经济中,基于大数据能够更加精准地计算CPI等指数。

❑ 在电子商务中,利用大数据能够精准地为用户推荐商品。

❑ 在医疗中,基于医疗大数据可辅助医疗决策。

从上面的例子可以看出,面向科学研究、工业生产、交通管理、社会经济、商业、医疗等都有相应的大数据计算问题,可见大数据计算已涉及生活的各个方面。

1.1.3 大数据计算系统

计算(机)系统指的是完整的、能够正常工作的计算机,包括计算机及完成某项计算任务所需要的软件和周边设备。计算系统最重要的特点是所有部件都和其他部件存在潜在交互。计算系统通常包括硬件系统、软件系统和应用程序3个层次。

大数据计算系统指的是面向大数据计算的计算系统,大数据所具备的特征对大数据计算系统提出了如下要求:

❑ 大数据规模大,要求大数据计算系统具有高效性、可扩展性和弹性。

❑ 大数据速度快,要求大数据计算系统具有高效性和弹性。

❑ 大数据类型多,要求大数据计算系统具有对于多源异构数据的适应性。

❑ 大数据价值密度低,要求大数据计算系统具有可扩展性。

因此,大数据计算系统具有多样性。对于计算系统的不同层次,大数据计算系统也有不同的考量:

❑ 面向数据密集型计算的硬件系统需要考虑高性能计算以及计算和多级存储性能的配合。

❑ 面向大数据的操作系统需要考虑大规模存储管理、计算和存储耦合计算的支持。

❑ 大数据计算框架需要考虑便利的大数据编程接口、计算任务执行、存储管理等。

❑ 大数据管理系统需要考虑大规模数据的存储和查询。

❑ 面向大数据的编译器需要考虑面向大数据的代码生成(分布式、大规模输入)、面向大数据的代码优化(如优化任务执行、优化数据分布和减少数据重分布)等。

为了提高计算系统的可扩展性,很多大数据计算系统都是分布式系统,但是大数据计算系统也可以采用集中式的解决方案。大数据计算系统与分布式系统的关系如图1-4所示。从图中可以看出,尽管很多流行的大数据计算系统是分布式系统,但分布式系统只是大数据计算系统的一种架构。

图1-4 大数据计算系统与分布式系统的关系

本书介绍的大数据计算系统主要是分布式系统。

分布式系统有多种不同的定义。一般认为,分布式系统是一些独立的计算机的集合,但是对这个系统的用户来说,系统就像一台计算机。这个定义有两方面的含义:第一,从硬件角度来讲,每台计算机都是自主的;第二,从软件角度来讲,用户将整个系统看作一台计算机。这两者都是必需的,缺一不可。分布式系统具有以下4个主要特征:

1)分布性:系统中的多台计算机之间没有主、从之分,既没有控制整个系统的主机,也没有受控的从机。

2)透明性:系统资源被所有计算机共享,用户不仅可以使用本机的资源,还可以使用分布式系统中其他计算机的资源,包括CPU、文件、打印机等。

3)同一性:系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在几台计算机上并行运行。

4)通信性:系统中的任意两台计算机都可以通过通信来交换信息。

随着计算机的业务单元变得越来越复杂,集中部署在一台或多台大型机的架构已经不能满足要求。随着微型机的出现,个人计算机已成为企业IT架构的首选,分布式处理方式也越来越受到业界的青睐,计算系统正经历从集中式到分布式的架构变革。Meta、Google、Amazon、Twitter、阿里巴巴、腾讯、百度等企业采用了大量基于个人计算机的计算方案,也构建了大量实用的系统。

尽管个人计算机在容错性和扩展性方面具有很大的优势,但对于一些计算密集型的任务(如天气预报、核爆模拟等),仍然要采用基于巨型机的集中式计算方案。一些企业仍然采用Oracle、DB2等传统的集中式数据库管理方法,也有一些企业采用Greenplum等并行数据库系统来管理企业的大数据。