您的当前位置:首页正文

第1章大数据技术教程-大数据技术概述

2021-02-03 来源:尚车旅游网
第一章 大数据技术概述

1.1 大数据的概念

近几年来,互联网技术飞速发展,特别是社交网络、物联网、云计算、雾计算技术的兴起与普及,以及各种传感器的广泛应用,数量庞大、种类众多、时效性强的非结构化数据成指数级增长,传统的数据存储、分析技术在实时处理大量的非结构化信息时遇到瓶颈,大数据的概念应运而生。到底什么是大数据?大数据的特征是什么?大数据与传统上的数据有哪些不同特性?大数据具有哪些应用价值?大数据通常的处理技术有哪些?针对这些问题,我们将在本教程中逐一探讨。

1.1.1 什么是大数据

在探讨什么是大数据前,我们先来了解一下什么是数据。

传统意义上的数据是对客观事物的逻辑归纳,是事实或观察的结果,是用于表示客观事物的未经加工的“有根据的数字”。数据源于测量,是对客观世界测量结果的记录。人类一切语言文字、图形图画、音像记录,所有感官可以察觉的事物,只要能被记下来,能够查询到,就都是数据(data)。当人类进入信息时代之后,数据是一切能输入计算机并被计算机程序处理,具有一定意义的数字、字母、符号和模拟量等的通称。数据可以是连续的值,比如声音、图像,称之为模拟数据;它也可以是离散的,如符号、文字,称之为数字数据。在现代计算机系统中,所有的数据都是数字的。数字数据是所有数据中最容易被处理的一种,许多和数据相关的概念,都是立足于数字数据。传统意义上的数据一词,尤其是相对于今天的“大数据”的“小数据”,主要指的就是数字数据,甚至在很多情况下专指统计数字数据,这些数字数据用来描述某种客观事物的属性。

大数据属于数据范畴,在类型上涵盖模拟数据和数字数据,在体量方面,具有数据庞大的特征,在数据处理方式,与传统的数据处理方式有所不同。人们在早些年习惯把规模庞大的数据称为“海量数据”,但实际上,大数据(Big Data)这个概念在2008年就已经被提出。2008年,在Google公司成立10周年之际,著名的《自然》杂志专门出版了一期专刊,讨论大数据相关的一系列技术问题,其中就提出了大数据(Big Data)的概念。

随着对大数据越来越多的了解,人们常常会问,究竟怎样的数据才能称作大数据?其实,关于大数据的定义,难以有一个非常准确的说法。维基百科给出了一个关于大数据的描述:

大数据是指无法使用传统和常用的软件技术和工具在一定时间内完成获取、管理和处理的数据集。国内学者给出的定义: 大数据是综合利用新的技术方法对多源、异构、动态的数字资源进行规模化的整合和处理,通过构成新的、复杂的逻辑机构以帮助人们解决具体问题的信息集成。

总的来说,大数据是指涉及的数据规模巨大到无法通过人工或计算机,在合理的时间内达到截取、管理、处理并整理成为人们所能解读的形式的信息。

其实,如今“大数据”一词的重点已经不仅在于数据规模的定义,它更多的是代表着计算机以及信息技术发展进入了一个新的时代,代表着大数据处理所需要的新技术和新方法,也代表着大数据分析和应用所带来的新发明、新服务和新的发展机遇。

大数据技术是新兴的,能够高速捕获、分析、处理大容量多种类型数据,并从中得到相应的技术和架构。大数据处理的关键技术主要包括:数据采集和预处理、数据存储、基础架构、数据分析和挖掘以及大数据应用。

大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。

从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘,但它必须依托云计算的分布式处理、分布式数据库和云存储技术。

1.1.2 大数据的产生

计算机和网络已经成为当今社会不可或缺的重要工具,人们在各个领域中都需要计算机的帮助,人们利用计算机的高速度和大容量的特点完成了原来不能完成的任务,并且这种大容量的应用越来越广。从1960年数据库(database)的发明开始,人类社会的数据量产生方式经历了三个阶段。

第一个阶段:运营式系统广泛使用数据库记录运营活动,如超市的销售记录系统、银行的交易记录系统、医院病人的医疗记录等。在这个阶段,数据记录在数据库中,数据的产生是被动的,例如,商店每售出一件产品就会在数据库中产生一条相应的销售记录。

第二个阶段:互联网的诞生,用户产生大量的原创内容。博客、微博、微信、直播平台为代表的新型社交网络的岀现和快速发展,使得用户产生数据的意愿更加强烈。智能手机、平板电脑等新型移动设备的普及,使得人们原创内容更为便捷。在这个阶段数据的产生是主动的。

第三个阶段:传感器的广泛应用,物联网的诞生。极其微小带有处理功能的传感器设备广泛地布置于社会的各个角落,通过这些设备来对整个社会的运转进行监控。这些设备会源源不断地产生新数据,这种数据的产生方式是自动的。

让我们从下面几个具体数值来体会下数据量的爆炸式增长。  淘宝网站累计的交易数据量高达100PB;

 百度网站目前的总数据量已超过1000PB,每天处理网页的数据达到10PB~100PB;  中国移动公司在某一个省一个月的电话通话记录数据高达 0.5PB~1PB;  一个大型城市道路车辆监控数据三年达200亿条、总量120TB。

今天我们正处于第三个阶段。随着互联网、物联网应用深入,越来越多的数据被存储和使用。尤其是移动互联网的普及,以及今后5G时代的到来,数据增量每年呈现一个几何级数级的增长。

移动互联网用户使用手机终端会产生大量的多样化数据,如通话记录与内容、浏览网页、搜索词汇、阅读新闻、观赏视频、发表、转发的文章与图片、收发电子邮件、关注的朋友、消费的支付、购买的商品、位置的移动等数据,4G移动网络时代,一个普通的智能手机用户平均每天大约产生200M的数据。移动互联网上的数据特殊性在于它能够锁定一个特定用户,并能够获得用户的地理位置信息,另外在于移动互联网上的时空信息等多样化的数据,从而导致移动互联网上的数据量会比传统互联网更大,形式也比传统互联网更加丰富,也有更高的价值。

“互联网+”和“工业4.0”的概念也为我们添加了更多的数据。工业机床、工业控制设备、RFID阅读器、传感器网络、GPS跟踪设备等这些设备每天、每时甚至每分每秒都在产生新的数据。物联网(IOT)采集的数据更多来自机器和设备,为我们提供感知物理世界的接口和手段,遍布于设备上的传感器,如同人体的感知器官,是大数据产生和输入端。和互联网数据相比,物联网数据的数据量更大。有研究比较这两个数据源,数据量会相差一个量级。全世界人口是70多亿,但已经有上百亿级的物联网设备,如果我们将这些设备产生的

数据都采集到的话,其数量会比来自互联网的数据更大。

1.1.3 大数据的特征

最早是IBM提出了大数据领域的“3V”概念,即大量化(Volume)、多样化(Variety)、快速化(Velocity)。通常在计算机领域用4个V(即Volume、Variety、Value、Velocity)来概括大数据的特征,也有学者提出N个V的特征。

大数据的特征一是数据量巨大(Volume)。据有关统计,截至目前,人类生产的所有印刷材料的数据量大约是200PB,而历史上全人类说过的所有的话的数据量大约是5EB。然而目前很多个人计算机硬盘的容量为TB量级,而很多大企业的数据量已经接近或达到EB量级。

大数据的特征二是数据类型繁多(Variety)。类型的多样性让数据被分为结构化数据和非结构化数据。相对于以往为了方便存储以文本为主的结构化数据,大数据主要采用非结构化数据,主要包括网络日志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理技术提出了更高要求。

大数据的特征三是价值密度低(Value)。价值密度的高低与数据总量的大小成反比例关系。以监控视频为例,一段1小时的监控视频,有用数据可能仅有一二秒。一般而言,数据规模越大,种类越多,用户得到的信息量越大。获得的知识越多,数据能够发挥的潜在价值越大。但在实际情况中,大数据价值密度低这一特点,使其数据价值往往依赖于较好的数据处理方式和工具。如何通过精密的机器算法更迅速地完成对大量数据的价值“提纯”成为目前大数据背景下亟待解决的难题。

大数据的特征四是处理速度快(Velocity)。该特性包括大数据传输方式和处理方式。传输方式包括批处理传输、实时传输、近似实时传输和流传输等方式。数据处理方式包括数据处理时间和相应的时延。大数据需要以较高的速率被分析、处理、存储和管理,这是大数据区分于传统数据最显著特征之一。根据IDC的“数字宇宙”的报告,预计到2020年,全球数据使用量将达到35.2ZB。在如此海量的数据面前,如何快速准确处理数据将是最关键的步骤。

1.1.5 现状与发展

大数据是信息化发展到一定阶段的产物。随着信息技术和人类生产生活深度融合,互联网快速普及,全球数据呈现爆发增长、海量集聚的特点,对经济发展、社会进步、国家治

理、人民生活都产生了重大影响。大数据发展日新月异,政府推动实施国家大数据战略,在数字基础设施、数据资源整合和开放共享、保障数据安全等方面着力推进。

综观世界,我国大数据发展具有独特优势。虽然很多国家把经济数字化作为实现创新发展的重要动能,在前沿技术研发、数据开放共享、隐私安全保护、人才培养等方面进行前瞻性布局,一些发达国家还相继出台了大数据发展规划,但没有一个国家能像中国这样将发展大数据上升为国家战略,并持续深入推动。而且,我国在数据资源上具有规模化和多样化优势,在互联网和移动互联网数据应用上具有后发优势,涌现出一批基于大数据应用的创新企业。所有这些都表明,我国运用大数据推动创新发展具备比较好的基础和条件,也说明国家实施大数据战略的极端重要性和正确性。目前,大数据发展整体上仍处于起步阶段。虽然快速发展的格局基本形成,但在数据开放共享、核心技术突破、以大数据驱动发展等方面都面临重重挑战,这也是制约我国大数据发展的主要因素。

近年来,一些省市把大数据作为弯道取直、后发赶超的重要战略,相继获批创建国家大数据综合试验区、大数据产业发展集聚区等,大数据产业已是风生水起。随着大数据产业的进一步落地,将有更多国家部门出台具体政策,推动大数据行业的发展。在国家政策持续推动下,大数据产业落地进程加快,产业价值被进一步发掘。2017年我国大数据市场规模已达358亿元,年增速达到47.3%,规模已是2012年的35亿元的10倍。预计2020年,我国大数据市场规模将达到731亿元。

未来大数据产业发展的趋势之一:与云计算、人工智能等前沿创新技术深度融合。大数据、云计算、人工智能等前沿技术的产生和发展均来自社会生产方式的进步和信息技术产业的发展。而前沿技术的彼此融合将能实现超大规模计算、智能化自动化和海量数据的分析,在短时间内完成复杂度较高、精密度较高的信息处理。比如阿里巴巴的电子商务交易平台能在双11当天完成每秒钟17.5万笔订单交易和每秒钟12万笔的订单支付,主要归功于融合了云计算和大数据的“飞天平台”。百度大脑也结合了云计算、大数据、人工智能等多种技术,配合实现强大性能。

未来大数据行业发展趋势之二:针对制造业的大数据解决方案不断升级,助力智能制造。制造业产品的全生命周期从市场规划、设计、制造、销售、维护等过程都会产生大量的结构化和非结构化数据,形成了制造业大数据。在《智能制造发展规划2016-2020》中,明确提出到2025年,智能制造支撑体系基本建立,重点产业初步实现智能转型,大数据将在智能制造产业发展中起到重要作用。

1.2 大数据的行业价值

1.2.1 从发现价值到创造价值

数据量大是大数据具有价值的前提。当数据量不够大时,它们只是离散的“碎片”,人们很难读懂其背后的故事。随着数据量不断增加,达到并超过某个临界值后,这些“碎片”就会在整体上呈现出规律性,并在一定程度上反映出数据背后的事物本质。这表明,数据量大是数据具有价值的前提,大数据具有大价值。大数据的“大”是相对的,与所关注的问题相关。通常来说,分析和解决的问题越宏观,所需要的数据量就越大。

数据关联是大数据发现价值的基础。运用大数据解决的问题通常涉及多部门、多领域、多个体、多视角,单纯的数据量的积累不一定能让人认识事物的全局,只有将不同侧面、不同局部的数据汇聚起来并加以关联,才能产生对事物的整体性和本质性认识。数据汇聚使数据可能产生价值,数据关联使数据实现价值,因此必须推动数据开放共享。政府、企业是大数据的主要拥有者。要推动大数据转化为发展动能,就要保障数据供给和合理合法开放共享。

计算分析使大数据最终产生价值。大数据通常价值巨大但价值密度低,很难通过直接读取提炼价值。只有通过综合运用数学、统计学、计算机等工具进行大数据分析,才能使大数据产生价值,完成从数据到信息再到知识和决策的转换。大数据价值链包括数据采集、流通、储存、分析与处理、应用等环节,其中分析与处理是核心。如果只存储不分析,就相当于只买米不做饭,产生不了实际效益。当前,我国大数据产业在某些环节(如储存)过于集中,有产能过剩之虞,但在分析与处理环节的产能又严重不足,这应引起关注。还要看到,传统用于分析数据的统计学方法和数据挖掘方法对于大数据并不适用,必须重建大数据的统计学基础、计算基础与数据挖掘方法基础。

据麦肯锡调查显示,数据挖掘的商业价值巨大,大数据在美国医疗行业每年能提高 0.7%的生产力,创造约 3000 亿美元的价值;在欧洲公共管理部门,每年能提高 0.5%的生产力,创造 2500 亿欧元的价值;在美国零售业,每年能提高 0.5%-1.0%的生产力 和 60%的净利率。

大数据满足需求,市场空间巨大。大数据可以帮助提供过去所无法提供的产品,满足用户需求。这种模式在传统产业中比较常见,过去,一些行业的用户需求虽然存在,但是由于缺乏有效的技术手段,导致市场参与者无法提供合适的产品迎合市场需求。大数据技术兴起后,将带动一系列创新产品推出市场,这在各行各业都能找到案例,考虑到传统产业的广度,

这将是是一个正在挖掘的巨大市场。

大数据创造需求,拓宽市场边界。大数据创新产品拓宽市场边界,供给创造需求。大数据创造价值功能,除了提供产品满足市场已经存在的需求外,基于大数据的新产品还将创造新供给,带动新需求,打破原有的市场边界,想象空间巨大:一方面大数据能够前所未有的精准洞悉现在,深入挖掘现有商业价值;另一方面大数据能够空前准确的预测未来,从而能获得前瞻性的商业价值。

1.2.2 行业应用

大数据无处不在,大数据应用于各个行业,包括电信、金融、医疗、公共服务、能源、娱乐等在内的社会各行各业都已经融入了大数据的印迹。大数据应用需要在重点领域实现突破,如电力、交通、金融、互联网、制造业等行业对经济影响巨大、数据丰富、相对容易共享的行业能够率先运用大数据加快发展,另外在政府治理、民生服务领域实现大数据应用的重点突破,如推动法院、信访系统等积极应用大数据技术,提升政府决策和风险防范水平,推动从源头上预防社会矛盾,提高社会治理的精准性和有效性。在教育、医疗、住房、交通等民生服务领域布局一批大数据应用工程,促进相关领域转型升级,显著提升公共服务水平,增强人民群众获得感幸福感。

在电信行业的应用方面,移动互联网时代手机不仅是通信工具,它也是移动支付、购物、地图导航、资讯源、社交的工具。运营商开展用户行为模式的分析与大数据挖掘并支撑各类数据应用,如支持精细化营销、支持产品规划和创新、支持网络优化和投资等。同时利用运营商大数据帮助企业了解用户,提高竞争力,实现精准广告、数据报告、精准营销、能力开放等。

在金融行业方面,大数据应用已经成为行业热点趋势,在交易欺诈识别、精准营销、消费信贷、信贷风险评估、供应链金融、股市行情预测、股价预测、智能投顾、骗保识别、风险定价等涉及银行、证券、保险等多领域的具体业务中,得到广泛应用。对于大数据的应用分析能力,正在成为金融机构未来发展的核心竞争要素。

在医疗行业方面,大数据有着广泛的应用空间,可以用在包括疾病预防、疾病诊疗、用药分析、互联网医疗等方面。大数据可以帮助研究者分析对比健康相关风险因素,建立监控健康监测评估数据库和知识库,提高疾病预报能力,降低疾病发生率。通过建立医学影像(如

B超、核磁、PET)数据库,利用大数据分析技术实现病因诊断。利用用药效果数据,分析药物对患者产生药物副作用进行分析,挖掘出不同药物的副作用可能产生的情况,从而提高患者疾病的治疗质量,指导临床用药,提高新药研发能力。大数据终将会成为医疗决策的一种重要依据,使医疗行业从“经验决策”发展到“数据决策”。

在制造行业方面,大数据在工业领域的应用,实现了工业从研发、设计、生产、运营到服务全过程智能化,提升生产效率,降低资源消耗,提高产品质量。利用工业大数据提升制造业水平,如产品故障诊断与预测、分析工艺流程、改进生产工艺,优化生产过程能耗、工业供应链分析与优化、生产计划与排程。工业与互联网深度融合创新,工业大数据技术及应用将成为未来提升制造业生产力、竞争力、创新能力的关键要素。

在交通方面,大数据能够在交通、物流、汽车行业方面发挥巨大作用。以北斗/GPS导航技术为基础,集成道路、公共交通基础信息、卡口监控、手机定位、地铁刷卡、公交刷卡、出租车GPS、长途客运GPS等构成海量城市时空动态交通大数据,通过大数据的分析,为解决交通安全、交通拥堵、智能导航、物流监控、智能调度提供有效解决办法,实现交通准确、高效、安全和智能化,全面提升道路交通管理效率及交通智能化管理水平。

除上述应用之外,大数据在能源、电力供应、城市综合管理、安全管理、个人生活服务等应用方面,提供巨大的利用空间,大数据的价值,远远不止于此,大数据对各行各业的渗透,大大推动了社会生产和生活,未来必将产生重大而深远的影响。

1.3 数据存储与计算

1.3.1 传统数据处理技术

存储、计算、网络被称作IT设施的三大领域,随着科技发展,硬件制造技术、体系架构、计算性能、网络带宽取得了巨大进步。在存储方面,作为计算机主要存储介质,硬盘的容量从原来的GB级提升至TB级,容量扩大了几百倍,硬盘的读写速度每秒从几M提升至百兆级,访问速度增加了几十倍,硬盘容量和访问速度都有大幅提升。计算机的存储结构从单机挂载硬盘发展为以磁盘阵列为载体的独立网络存储系统,并产生了多种网络存储技术,如直连式存储(DAS)、网络存储设备(NAS)和存储网络(SAN)等,服务器通过外置存储方式扩展存储空间,同时提高了访问速度。服务器直接挂载硬盘的存储方式,其数据访问性能主要取决于硬盘寻址时间和硬盘接口带宽。基于网络存储方式,属于集中式存储,集中式存储

系统特点是数据存储计算能力主要由控制器提供,其性能取决于控制器接口的速率和数量。

在计算方面,对于大规模数据处理的传统计算,主要是高性能计算。高性能计算采用的方法是将作业任务分散到集群中的各台机器上,这些机器访问集中存储系统的共享文件,这种计算模式适用于计算密集型作业,如果处理大规模数据作业任务,每个计算节点要访问的数据量庞大,会出现网络带宽的瓶颈而导致节点空闲等待数据的问题。

另外,在数据存储技术方面,传统的数据存储方式主要是使用关系型数据库。关系型数据库是建立在关系模型基础上的数据库,借助于二维表格模型来处理数据。关系型数据库采用了关系模型来组织数据,二维表结构非常贴近逻辑世界一个概念,相对网状、层次等其他模型来说更容易理解,另外关系型数据库易于解决数据完整性问题,大大减低了数据冗余和数据不一致的概率,使用通用的SQL语言使得关系型数据库操作非常方便。

1.3.2 传统数据处理与计算瓶颈

在传统数据处理与计算上,存在如下瓶颈:

1、 数据量的问题。传统的基于文件存储,或是数据库的存储技术,数据存储的容量与计算性能不能成线性增长。例如,以现有的硬盘访问速度,从I个T的硬盘中读完所有数据,大概需要2个多小时,如果是基于TB级别的数据进行分析的话,光硬盘读取完数据都要好几天了,更谈不上计算分析了。对于业务系统来说,通常是采用关系数据库存放业务数据,但是如果系统每天产生的数据量非常大的时候,关系数据库就很难支撑了。例如,仅一个普通高校,每天访问互联网的地址日志上亿条,如果采用传统数据库存储这些地址日志,对几十亿条数据做查询分析时,动辄会耗时好几个小时,甚至直接使数据库崩溃。对于产生庞大数据的商业系统来说,传统的关系数据库更是难以支撑。

2、 数据类型问题。互联网在各行业应用丰富,产生的数据不仅仅是结构化数据,甚至有些应用场景下,80%是非结构化数据和半结构化数据。对于企业来讲,不仅需要把这些数据存储起来进行分析,也需要对这些数据进行管理,同时对海量数据的访问控制也是很重要的问题。采用关系型数据库无法存放非结构化数据,采用传统的集中式文件存储,也无法有效管理数据文件和支撑对数据的分析计算。

3、 数据处理延时问题。对数据量大和数据源多变的数据进行处理时,传统的数据库会使处理时间变得很长。一些业务系统的数据分析实时性较高,需要在海量的数据上实时分析出结果,这就对系统的数据资源访问速度和计算分析能力提出了更高的要求,传统的数据处

理技术很难满足这样的应用场景。

1.3.3 分布式系统的优势

分布式系统是构成当代信息系统的重要基础架构,是当前大数据环境下解决数据存储与计算的必然选择。当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,硬件的提升高昂到得不偿失的时,应用程序也不能进一步优化的时候,需要采用分布式系统。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件(middleware)负责实现这个模型。

图(1-1):分布式系统

分布式系统可以看作计算机支持下的协同工作系统,具有高可靠性、可扩展性和高计算性能等优点。分布式系统具有潜在的高可靠性,系统通过把工作负载分散到众多的机器上,单个芯片故障最多只会使一台机器停机,而其它机器不会受任何影响,单个计算机节点出现故障,系统将仍能继续工作。分布式系统支持渐增长方式提供系统的可扩展性,当系统性能不能满足需要时,可以注册增加新的计算节点到系统中,实现系统在需求增长的时候逐渐进行动态扩充。分布式系统的另一个优点是高性能,由于使用了并行处理技术,分布式系统总的计算能力比单个的大型集中式系统强很多。

分布式系统按类别主要可以分为如下几类:

分布式数据库系统,包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的 DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。能够支持大规模并发的在线实时业务数据库操作,如在电子商务网站的应用。

分布式计算,将一项庞大的任务分割成许多较小的任务,分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。目前得到广泛使用的三大分布式计算系统是Hadoop,Spark和Storm。

分布式文件系统,分布式文件系统(DFS)是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。在这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通。借由通信协议的设计,可以让客户端和服务器端都能根据访问控制清单或是授权,来限制对于文件系统的访问。常见的分布式文件系统有NFS、GFS、HDFS、Lustre等。

其他的分布式应用系统,如文件下载BitTorrent,是基于点对点网络实现网络中不同对端之间的文件传输的分布式实现,当前热门的区块链技术,是属于分布式分类记账的应用,区块链每个节点都按照块链式结构分布式存储完整的数据。

1.4 分布式技术与Hadoop

1.4.1 什么是分布式系统

分布式系统是简单的说就是若干独立计算机的集合,它们通过网络进行通信来协调完成共同的任务。它是把一个或多个程序放在多个计算机上运行,对用户来说是感受不到多个计算机的存在,就像是一个系统在对外提供服务。分布式系统要做的就是把多台计算机有机的组合、连接起来,让其协调的完成一件任务,可以是存储任务(分布式存储),也可以是计算任务(分布式计算),分布式存和分布式计算是分布式系统的两大部分。

(一)分布式存储是一种数据存储技术,通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

分布式存储系统包含四个技术方向:

1、 结构化存储:如事务处理系统或关系型数据库; 2、 非结构化存储:如分布式文件系统

3、 半结构化存储:如NoSQL、Key-Value Store 4、 In-memory存储:如memcahed、Redis

(二)分布式计算是研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式计算中数据不只分布在一个软件或计算机上,而是分布于多个软件上,可以用多台或一台计算机同时运行若干个软件,通过网络实现信息的共享。分布式计算优点是能够更加方便共享数据资源,用多台计算机同时处理任务时能实现计算负载的平衡,同时可以根据实际需要合理选择适当的计算机运行程序。相对于造价和维护昂贵的超级计算机,分布式计算是一种廉价、高效、准确的计算技术。目前分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输。如:

Folding@home:分析计算蛋白质的内部结构和相关药物;

Climateprediction.net:模拟百年以来全球气象变化,并计算未来地球气象,以对付未来可能遭遇的灾变性天气。

Quake-Catcher Network(捕震网):借由日渐普及的笔记本电脑中内置的加速度计,以及一个简易的小型USB微机电强震仪(传感器),创建一个大的强震观测网。可用于地震的即时警报或防灾、减灾等相关的应用上。

World Community Grid(世界社区网格):帮助查找人类疾病的治疗方法,和改善人类生活的相关公益研究,包括艾滋病、癌症、流感病毒等疾病及水资源复育、太阳能技术、水稻品种的研究等。

1.4.2 分布式与Hadoop

Hadoop是分布式系统的一个具体实现,它提供了分布式系统基础框架,基于这个框架我们可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。基于HDFS,你可以对文件进行操作,例如新建,删除,编辑,重命名等。

MapReduce和HDFS是Hadoop框架最核心的设计。HDFS为海量的数据提供了存储;MapReduce则为海量的数据提供了计算。Hadoop框架的核心部分也对应了分布式系统中的分布式计算和分布式存储两大研究范畴。

Hadoop的分布式文件系统HDFS:由Java程序开发的,适合运行在通用硬件上的分布式文件系统,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的。HDFS将文件切分成多个数据块(Block),每个数据块是独立存储单元,文件数据块拆分使得单个文件大小可以大于一个计算节点的整个磁盘容量,构成文件的Block可以分布在整个集群。关于HDFS知识我们将在《第3章:Hadoop分布式文件系统》中做更详细介绍。

MapReduce:是一种面向大规模数据并行处理的编程模型,也一种并行分布式计算框架。在Hadoop流行之前,分布式框架虽然也有,但是实现比较复杂,基本都是大公司的专利,小公司没有能力和人力来实现分布式系统的开发。Hadoop的出现后使用MapReduce框架让分布式编程变得简单。如名称所示,MapReduce主要由两个处理阶段:Map阶段和Reduce阶段,每个阶段都以键值对作为输入和输出,键值对类型可由用户定义。程序员只需要实现Map和Reduce两个函数,便可实现分布式计算,而其余的部分,如分布式实现、资源协调、内部通信等,都是由平台底层实现,无需开发者关心。基于Hadoop开发项目相对简单,小公司也可以轻松的开发分布式处理软件。我们将在本教程第4章对MapReduce进行详细阐述。

1.4.3 Hadoop重要性

Hadoop是一个能够对大量数据进行可靠、高效、可伸缩的分布式处理系统。Hadoop 的可靠性设计是它首先假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点进行重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,它能够处理 PB 级数据。。

Hadoop作为大数据系统可以做很多事情,比如数据的少量存储、日志分析、搜索、推荐系统、欺诈分析、图片分析、图像处理、物联网传感器数据分析等。Hadoop能解决企业在大数据分析方面的各种诉求,对于实时的数据分析,包括对线上请求数据和来自各种数据源的数据流进行实时分析,以及对非实时的数据分析,都是Hadoop系统的强项。其优势具体归纳如下:

(1)HDFS能够实现对海量数据的快速存储;

(2)Hadoop的分布式计算模型能够对海量数据作快速计算;

(3)基于开源项目,有丰富的社区资源,相对其他方案Hadoop的性价比较高; (4)可以同时存储结构化或者非结构化数据;

(5)扩展性强,可以通过添加节点的方式快速扩展系统; (6)容错率高,当软硬件出错后系统都能够继续运行。

1.5 大数据处理流程

大数据处理主要包括数据采集、数据清洗(预处理)、数据存储与管理、数据分析、数据可视化几个环节。在实际应用中,我们使用Hadoop进行大数据处理的大致流程如下:

首先,使用ETL(Extract-Transform-Load,提取-转换-加载)工具(如Flume、Kafka、Sqoop、爬虫等)对存储在文件、关系型数据库、实时数据流(如设备syslog信息)等各类数据源中的结构化数据、非结构化数据、半结构化数据进行采集;

其次,利用数据提取技术,从采集到的各类复杂的数据中提取出我们需要的数据,在这个过程中可以丢弃一些不重要的字段。由于数据源头的采集可能存在不准确,我们必须对提取后的数据进行数据清洗、过滤和剔除。针对不同的应用场景,我们还需要对数据格式进行转换操作,最终按照预先定义好的数据模型,将数据存储到hadoop中。

最后,通过MapReduce、Spark等计算框架以及SQL引擎、BI(Business Intelligence,商业智能)机器学习等工具,向外部程序提供标准的服务。

1.5.1数据采集

数据采集是指通过RFID射频数据、传感器数据、社交网络交互数据及移动互联网数据等方式获取各种类型的结构化、半结构化及非结构化的数据,是大数据处理流程的起点。大数据来源于人类社会活动、计算机系统、物理世界、

知识服务模型的根本。重点要突破分布式高速高可靠数据爬取或采集、高速数据全映像等大数据收集技术;突破高速数据解析、转换与装载等大数据整合技术;设计质量评估模型,开发数据质量技术。

大数据采集一般分为大数据智能感知层:主要包括数据传感体系、网络通信体系、传感适配体系、智能识别体系及软硬件资源接入系统,实现对结构化、半结构化、非结构化的海量数据的智能化识别、定位、跟踪、接入、传输、信号转换、监控、初步处理和管理等。必

须着重攻克针对大数据源的智能识别、感知、适配、传输、接入等技术。基础支撑层:提供大数据服务平台所需的虚拟服务器,结构化、半结构化及非结构化数据的数据库及物联网络资源等基础支撑环境。重点攻克分布式虚拟存储技术,大数据获取、存储、组织、分析和决策操作的可视化接口技术,大数据的网络传输与压缩技术,大数据隐私保护技术等。

1.5.2 数据清洗/预处理

主要完成对已接收数据的辨析、抽取、清洗等操作。

1、抽取:因获取的数据可能具有多种结构和类型,数据抽取过程可以帮助我们将这些复杂的数据转化为单一的或者便于处理的构型,以达到快速分析处理的目的。

2、清洗:对于大数据,并不全是有价值的,有些数据并不是我们所关心的内容,而另一些数据则是完全错误的干扰项,因此要对数据通过过滤“去噪”从而提取出有效数据。

3.大数据存储及管理技术

大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。重点解决复杂结构化、半结构化和非结构化大数据管理与处理技术。主要解决大数据的可存储、可表示、可处理、可靠性及有效传输等几个关键问题。开发可靠的分布式文件系统(DFS)、能效优化的存储、计算融入存储、大数据的去冗余及高效低成本的大数据存储技术;突破分布式非关系型大数据管理与处理技术,异构数据的数据融合技术,数据组织技术,研究大数据建模技术;突破大数据索引技术;突破大数据移动、备份、复制等技术;开发大数据可视化技术。

开发新型数据库技术,数据库分为关系型数据库、非关系型数据库以及数据库缓存系统。其中,非关系型数据库主要指的是NoSQL数据库,分为:键值数据库、列存数据库、图存数据库以及文档数据库等类型。关系型数据库包含了传统关系数据库系统以及NewSQL数据库。

开发大数据安全技术。改进数据销毁、透明加解密、分布式访问控制、数据审计等技术;突破隐私保护和推理控制、数据真伪识别和取证、数据持有完整性验证等技术。

1.5.3数据存储与管理

传统的数据存储和管理以结构化数据为主,因此关系数据库系统(RDBMS)可以一统天下满足各类应用需求。大数据往往是半结构化和非结构化数据为主,结构化数据为辅,而且各

种大数据应用通常是对不同类型的数据内容检索、交叉比对、深度挖掘与综合分析。面对这类应用需求,传统数据库无论在技术上还是功能上都难以为继。

因此,近几年出现了oldSQL、NoSQL 与NewSQL 并存的局面。总体上,按数据类型的不同,大数据的存储和管理采用不同的技术路线,大致可以分为3类。第1类主要面对的是大规模的结构化数据。针对这类大数据,通常采用新型数据库集群。

它们通过列存储或行列混合存储以及粗粒度索引等技术,结合MPP(Massive Parallel Processing)架构高效的分布式计算模式,实现对PB 量级数据的存储和管理。这类集群具有高性能和高扩展性特点,在企业分析类应用领域已获得广泛应用;第2类主要面对的是半结构化和非结构化数据。

应对这类应用场景,基于Hadoop开源体系的系统平台更为擅长。它们通过对Hadoop生态体系的技术扩展和封装,实现对半结构化和非结构化数据的存储和管理;第3类面对的是结构化和非结构化混合的大数据,因此采用MPP 并行数据库集群与Hadoop 集群的混合来实现对百PB 量级、EB量级数据的存储和管理。

一方面,用MPP 来管理计算高质量的结构化数据,提供强大的SQL和OLTP型服务;另一方面,用Hadoop实现对半结构化和非结构化数据的处理,以支持诸如内容检索、深度挖掘与综合分析等新型应用。这类混合模式将是大数据存储和管理未来发展的趋势

1.5.4数据分析和可视化

在大数据时代,人们迫切希望在由普通机器组成的大规模集群上实现高性能的以机器学习算法为核心的数据分析,为实际业务提供服务和指导,进而实现数据的最终变现。与传统的在线联机分析处理OLAP不同,对大数据的深度分析主要基于大规模的机器学习技术,一般而言,机器学习模型的训练过程可以归结为最优化定义于大规模训练数据上的目标函数并且通过一个循环迭代的算法实现,如图4所示。因而与传统的OLAP相比较,基于机器学习的大数据分析具有自己独特的特点。

(1)迭代性:由于用于优化问题通常没有闭式解,因而对模型参数确定并非一次能够完成,需要循环迭代多次逐步逼近最优值点。

(2)容错性:机器学习的算法设计和模型评价容忍非最优值点的存在,同时多次迭代的特性也允许在循环的过程中产生一些错误,模型的最终收敛不受影响。

(3)参数收敛的非均匀性:模型中一些参数经过少数几轮迭代后便不再改变,而有些参数则需要很长时间才能达到收敛。

这些特点决定了理想的大数据分析系统的设计和其他计算系统的设计有很大不同,直接应用传统的分布式计算系统应用于大数据分析,很大比例的资源都浪费在通信、等待、协调等非有效的计算上。

传统的分布式计算框架MPI(message passing interface,信息传递接口)虽然编程接口灵活功能强大,但由于编程接口复杂且对容错性支持不高,无法支撑在大规模数据上的复杂操作,研究人员转而开发了一系列接口简单容错性强的分布式计算框架服务于大数据分析算法,以MapReduce、Spark和参数服务器ParameterServer等为代表。

分布式计算框架MapReduce将对数据的处理归结为Map和Reduce两大类操作,从而简化了编程接口并且提高了系统的容错性。但是MapReduce受制于过于简化的数据操作抽象,而且不支持循环迭代,因而对复杂的机器学习算法支持较差,基于MapReduce的分布式机器学习库Mahout需要将迭代运算分解为多个连续的Map 和Reduce 操作,通过读写HDFS文件方式将上一轮次循环的运算结果传入下一轮完成数据交换。

在此过程中,大量的训练时间被用于磁盘的读写操作,训练效率非常低效。为了解决MapReduce上述问题,Spark 基于RDD 定义了包括Map 和Reduce在内的更加丰富的数据操作接口。

不同于MapReduce 的是Job 中间输出和结果可以保存在内存中,从而不再需要读写HDFS,这些特性使得Spark能更好地适用于数据挖掘与机器学习等需要迭代的大数据分析算法。基于Spark实现的机器学习算法库MLLIB已经显示出了其相对于Mahout 的优势,在实际应用系统中得到了广泛的使用。

近年来,随着待分析数据规模的迅速扩张,分析模型参数也快速增长,对已有的大数据分析模式提出了挑战。例如在大规模话题模型LDA 中,人们期望训练得到百万个以上的话题,因而在训练过程中可能需要对上百亿甚至千亿的模型参数进行更新,其规模远远超出了单个节点的处理能力。

为了解决上述问题,研究人员提出了参数服务器(Parameter Server)的概念,如图5所示。在参数服务器系统中,大规模的模型参数被集中存储在一个分布式的服务器集群中,大规模的训练数据则分布在不同的工作节点(worker)上,这样每个工作节点只需要保存它计算时所依赖的少部分参数即可,从而有效解决了超大规模大数据分析模型的训练问题。目前参数服务器的实现主要有卡内基梅隆大学的Petuum、PSLit等。

因篇幅问题不能全部显示,请点此查看更多更全内容