PDF 物理页索引 80
文件中的第 81 页 · 印刷页码:64
这就涉及一个重要的话题—数据标准。数据标准不仅用于解决企业内部数据关联的问题,比如一个好的用户库,可以解决未来大数据关联上的很多问题,假定公安的数据跟医院的数据进行关联打通,可以发挥更大的价值,但是公安标识用户的是身份证,而医院标识用户的则是手机号码,有了统一的用户库后,就可以通过ID-Mapping技术简单地把双方的数据进行关联。数据的标准不仅仅是企业内部进行数据关联非常重要,跨组织、跨企业进行数据关联也非常重要,而业界有能力建立类似用户库等数据标准的公司和政府部门并不多。
大数据发展到后期,当然是数据越多越好,企业内部的数据已经不能满足公司的需要。比如淘宝,想要对用户进行一个完整的画像分析,想获得用户的实时地理位置、爱好、星座、消费水平、开什么样的车等,用于精准营销。淘宝自身的数据是不够的,这个时候,很多企业就会去购买一些数据(有些企业也会自己去爬取一些信息,这个相对简单一点),比如阿里收购高德,采购微博的相关数据,用于用户的标签加工,获得更精准的用户画像。
3.1.6大数据生产链
如图3-3所示,大数据生产全链条覆盖数据采集、计算引擎、数据加工、数据可视化、机器学习、数据应用等。计算引擎包括Hadoop生态系统、底层计算平台、开发工具/组件,基于各自算法的计算引擎/服务,以及最上层的各种数据应用/产品。
3.1.7大数据怎么用
如何把数据资源转化为解决方案,实现产品化,是我们特别关注的问题。大数据只是一种手段,并不能无所不包、无所不用。我们关注大数据能做什么、不能做什么,现在看来,大数据主要有以下几种较为常用的功能。
追踪:互联网和物联网无时无刻不在记录,大数据可以追踪、追溯任何记录,形成真实的历史轨迹。追踪是许多大数据应用的起点,包括消费者购买行为、购买偏好、支付手段、搜索和浏览历史、位置信息等。
人工智能与大数据技术导论
64
PDF 物理页索引 81
文件中的第 82 页 · 印刷页码:65
识别:在对各种因素全面追踪的基础上,通过定位、比对、筛选可以实现精准识别,尤其是对语音、图像、视频进行识别,使可分析的内容大大丰富,得到的结果更为精准。
画像:通过对同一主体不同数据源的追踪、识别、匹配,形成更立体的刻画和更全面的认识。对消费者画像,可以精准地推送广告和产品;对企业画像,可以准确地判断其信用及面临的风险。
预测:在历史轨迹、识别和画像基础上,对未来趋势及重复出现的可能性进行预测,当某些指标出现预期变化或超预期变化时给予提示、预警。以前也有基于统计的预测,大数据大大丰富了预测手段,对建立风险控制模型有深刻意义。
匹配:在海量信息中精准追踪和识别,利用相关性、接近性等进行筛选比对,更有效率地实现产品搭售和供需匹配。大数据匹配功能是互联网约车、租房、金融等共享经济新商业模式的基础。
优化:按距离最短、成本最低等给定的原则,通过各种算法对路径、资源等进行优化配置。对企业而言,提高服务水平,提升内部效率;对公共部门而言,节约公共资源,提升公共服务能力。
上述概括并不一定完备,大数据肯定还有其他更好的功能。当前许多貌似复杂的应用,大都可以细分成以上几种类型。例如,大数据精准扶贫项目,从大数据应用角度,通过识别、画像,可以对贫困户实现精准筛选和界定,找对扶贫对象;通过追踪、提示,可以对扶贫资金、扶贫行为和扶贫效果进行监控和评估:通过配对、优化,可以更好地发挥扶贫资源的作用。这些功能也并不都是大数据所特有的,只是大数据远远超出了以前的技术,可以做得更精准、更快、更好。
3.2 国内大数据现状
未来的企业一定是数字化的。当企业把业务从线下搬到了线上,和客户的连接已经开始了数字化的旅程,所有的沟通过程都会被记录,使得企业对用户的了解前所未有的细致和全面。或许某一天,一个客户来到你的公司,你会说:“根据你在淘宝、京东和其他场所的消费习惯和信用,本企业对你的欢迎指数是16.8%”。想想看,这是多么可怕的事情。从商业上说,企业可以通过对海量的用户数据分析来完善产品或服务。未来的竞争一定是面向数据的竞争,数据累计得越多,你对用户越了解,你的业务就越具有独特性,别人难以复制。
未来的政府也一定是数字化的。政府层面对大数据分析应用可以完善公共服务。比如,一个地区的地方政府能够掌握新生婴儿的出生数量、分布区域、未来的入学需求等数据,就可以预测几年之后当地对于学校等教育资源的供给是否足够。政府部门的大数据部门的一个目标是预警,通过应用大数据来进行社会治理,从而为当地百姓提供更好的服务。
第3章 数据
65
PDF 物理页索引 82
文件中的第 83 页 · 印刷页码:66
最近几年,大数据理念在国内已经深入人心,人们对大数据的认识也更加具体化,“用数据说话”已经成为国内很多人的共识,大数据分析和大数据建设被各行各业所重视,数据成为堪比石油的战略资源。对应石油产业中的油田、冶炼和消费三个环节,数据产业主要包括数据源、加工以及应用三大类。今天的大数据生态就是想让数据来源更丰富,让数据加工更高效,让数据应用市场更广阔。大数据实践逐渐落地,国内的大数据产业政策日渐完善,技术、应用和产业都取得了非常明显的进展。
3.2.1 政策持续完善
在顶层设计上,国务院《促进大数据发展行动纲要》对政务数据共享开放、产业发展和安全三方面做了总体部署。数据共享开放方面的《政务信息资源共享管理暂行办法》、产业发展方面的工信部《大数据产业发展规划(2016-2020)》、数据安全方面的《中华人民共和国网络安全法》等也都已出台。卫计、环保、农业、检察、税务等部门还出台了领域大数据发展的具体政策。此外,17个省市发布了大数据发展规划,十几个省市设立了大数据管理局,8个国家大数据综合试验区、11个国家工程实验室已启动建设。可以说,适应大数据发展的政策环境已经初步形成。
从时间上看,最早成立的是广东省大数据管理局,而级别最高的则是贵州省大数据发展管理局,它是省政府直属的正厅级部门。此外,因与阿里合作而备受瞩目的杭州市数据资源管理局也是大数据的政府部门。各地设立的大数据部门的名称各不相同,有些叫大数据管理局,如上述的广东省大数据管理局、贵州省大数据发展管理局:有些叫数据资源局,如杭州市数据资源管理局、合肥市数据资源局;还有一些名字,如佛山南海区的数据统筹局、江门市的网络信息统筹局、铜陵市的信息化管理办公室、成都市政府的大数据办等。由于各级省市政府对大数据部门的定位不同,这就造成了各个地方大数据部门的职能侧重、级别、隶属关系等各不相同。在这些大数据部门中,大部分隶属于各省市的工信委或经信委,另一部分挂靠在当地政府,或由省、市政府直接管辖。一般隶属于经信委、工信委的大数据部门会更加偏重于业方面的大数据工作,而直接隶属或挂靠于各级省市政府的大数据部门可能会更加侧重于政务数据工作的开展以及社会治理的推进。
3.2.2技术和应用逐步落地
开源给国内大数据产业界提供了一个跳板,让我们与国际上大数据技术水平的差距不断缩小。在海量数据分布式存储、计算任务切片调度、节点通信协调同步、数据计算监控、硬件架构等方面,国内不少企业都具备一定的技术水平。与此同时,国产化的商用大数据平台产品正在崛起,底层技术越来越扎实。
大数据应用逐步落地。在金融领域,商业银行全面部署大数据基础设施,五大国有银行、股份制银行、城商行和农商行已经逐步开始从传统数据仓库架构向大数据平台架构的转型改造过程,基于大数据风控的“秒贷”业务越来越普及,不仅提升了贷款效率,还扩大了普惠金融的覆盖面。在电信领域,中国电信的大数据平台已经扩展到31个省,汇聚全国的基础数据形成“天翼大数据”服务能力;中国联通也实现了数据整合,大数据产品体系已经推出征信、指数、营销等六大产品种类。
人工智能与大数据技术导论
66
PDF 物理页索引 83
文件中的第 84 页 · 印刷页码:67
围绕数据的产生、汇聚、处理、应用、管控等环节的产业生态从无到有,不断壮大。中国信息通信研究院发布的《中国大数据产业调查报告(2017年)》显示,2016年,中国大数据核心产业(软件、硬件及服务)的市场规模为168亿元,较2015年增长达45%,预计到2020年将达到578亿元。
3.2.3数据产生价值难
数据产生价值链条长。很多政府部门和企业不知道数据怎么用,或者没有支撑的数据平台。对于它们来说,把数据变成价值的链条是非常长的。从采集、整合到分析,整个链条涉及的部门比较多。涉及业务部门、数据平台部门、数据分析与数据产品部门,而后又回到业务部门,这个链条非常长。这决定了要让数据产生价值很困难。
关于数据变现,有一个更有意思的例子,告诉我们只要合理地使用数据,就可以把“数据产生价值链条长”的问题简化,合理的数据平台有助于缩短这个链条,让数据为企业产生价值。这个例子是:有位风水大师一卦3万多,这位大师是怎么做到的?他在美容院购买女性客户的信息,然后整理这些女性与美容师聊天时透露的信息,之后再做关联整理分析。然后找机会接触这些女性进行算卦,道出你的年龄、家庭、身体状况、是否手术、哪里有痣、兴趣爱好等。这些女性当时就觉得“真神”,之后形成口碑传播,生意红火,真正的数据产生了价值。
3.2.4 问题与机遇并存
从数据的产生端到数据价值链条顶端的决策行动支持,要经过整合、管理、分析、洞察这几个关键步骤,在当前国内的大数据生态中,大数据价值实现的难点和重点在于数据的有效融合和深度分析。
- 打破数据孤岛
人人都想要别人的数据,但都不愿意把自己的数据给别人,这是目前的数据现状。以前信息系统建设都从一个个“烟囱”开始,数据缺乏互通的技术基础,这是大数据需要解决的第一个大问题。从国家层面到企业内部,情况大同小异。麦肯锡的一份报告显示,大数据在很多领域没有达到预期效果,很重要的原因就是数据割裂。这些年,推动数据开放共享的政策举措一直在加强,政策已经很给力了,但效果与预期还有距离。这时就需要技术来推进。
- 加强数据管理
数据分析工作往往有80%的时间和精力都耗费在采集、清洗和加工数据上。数据质量不过关,也会让数据分析效果大打折扣,甚至让分析结果谬以千里。很多单位大数据的应用效果不佳,多半问题出在数据管理上。大家都同意把数据当作资产,甚至认为有朝一日数据会计入资产负债表。但对比桌椅板凳这些实物资产,我们对数据资产的管理还处于非常原始的阶段。我们往往对自己的数据资产有哪些、有多少都不清楚,更别说数据质量、数据安全、资产评估、资产交换交易等精细管理、价值挖掘和持续运营了。
第3章 数据
67
PDF 物理页索引 84
文件中的第 85 页 · 印刷页码:68
然而,数据管理不像数据分析挖掘那么光鲜亮丽,就像城市的“下水道工程”,短期只有投入而看不见产出。但长期又不得不做,这是战略层面的事,当前不做未来返工的成本巨大。以后每个企业都将成为数据驱动的企业,打基础的事情要尽早。
- 深化领域应用
虽然大数据的应用取得了一定进展,在互联网、金融、电信、交通等领域产生了实实在在的效益,旅游、环保、公安、医疗、工业领域也正在加速发展。但总体上只能说刚刚走出了小半步。一类是“平行替代”,如金融和电信行业用Hadoop来重构原来昂贵的数据仓库;另一类则是“补课”,如政务、医疗、工业、环保等领域,正在做的工作是在原有业务系统之外,新建本来早该建设的数据平台。
这些大数据应用显然还不够高大上,是量变而非质变,但的确也是发展必经的阶段。随着这些“替代”型或“补课”型应用的深入,未来业务与数据将加深融合,越来越多数据驱动的新模式、新业态值得所有人期待。也只有这样,数据强国战略才能落到实处。
3.3 大数据的计算模式
大数据的计算模式可以分为批量计算(batch computing)和流式计算(streamcomputing)两种形态。如图3-4左图所示,批量计算首先进行数据的存储,然后对存储的静态数据进行集中计算。Hadoop是典型的大数据批量计算架构,由HDFS分布式文件系统负责静态数据的存储,并通过MapReduce将计算逻辑分配到各数据节点进行数据计算和价值发现。
如图3-4右图所示,在流式计算中,无法确定数据的到来时刻和到来顺序,也无法将全部数据存储起来。因此,不再进行流式数据的存储,而是当流动的数据到来后,在内存中直接进行数据的实时计算。例如Twitter的Storm、Yahoo的S4就是典型的流式数据计算架构,数据在任务拓扑中被计算,并输出有价值的信息。
流式计算和批量计算分别适用于不同的大数据应用场景。对于先存储后计算,实时性要求不高,同时数据的准确性、全面性更为重要的应用场景,批量计算模式更合适;对于无须先存储,可以直接进行数据计算,实时性要求很严格,但数据的精确度要求稍微宽松的应用场景,流式计算具有明显优势。流式计算中,数据往往是最近一个时间窗口内的,因此数据延迟往往较短,实时性较强,但数据的精确程度往往较低。流式计算和批量计算具有明显的优劣互补特征,在多种应用场合下可以将两者结合起来使用。通过发挥流式计算的实时性优势和批量计算的精度优势,满足多种应用场景在不同阶段的数据计算要求。
人工智能与大数据技术导论
68
PDF 物理页索引 85
文件中的第 86 页 · 印刷页码:69
目前,关于大数据批量计算相关技术的研究相对成熟,形成了以谷歌的MapReduce编程模型、开源的Hadoop计算系统为代表的高效、稳定的批量计算系统,在理论上和实践中均取得了显著成果。现有的大数据流式计算系统实例有Storm系统、Kafka系统、Spark系统等。本节对这几款大数据流式计算系统进行实例分析。
3.3.1 流式计算的应用场景
流式大数据呈现出实时性、易失性、突发性、无序性、无限性等特征,对系统提出了很多新的更高的要求。2010年,Yahoo推出了S4流式计算系统,2011年,Twitter推出了Storm流式计算系统,在一定程度上推动了大数据流式计算技术的发展和应用。但是,这些系统在可伸缩性、系统容错、状态一致性、负载均衡、数据吞吐量等诸多方面仍然存在着明显不足。如何构建低延迟、高吞吐且持续可靠运行的大数据流式计算系统是当前亟待解决的问题。
大数据流式计算主要用于对动态产生的数据进行实时计算并及时反馈结果,但往往不要求结果绝对精确的应用场景。在数据的有效时间内获取其价值,是大数据流式计算系统的首要设计目标。因此,当数据到来后,将立即对其进行计算,而不再对其进行缓存,等待后续全部数据到来再进行计算。大数据流式计算的应用场景较多,按照数据的产生方式、数据规模大小以及技术成熟度高低3个不同维度,金融银行业应用、互联网应用和物联网应用是3种典型的应用场景,体现了大数据流式计算的基本特征。从数据产生方式上看,它们分别是被动产生数据、主动产生数据和自动产生数据;从数据规模上看,它们处理的数据分别是小规模、中规模和大规模;从技术成熟度上看,它们分别是成熟度高、成熟度中和成熟度低的数据。
(1)金融银行业的应用
在金融银行领域的日常运营过程中,往往会产生大量数据,这些数据的时效性往往较短。因此,金融银行领域是大数据流式计算最典型的应用场景之一,也是大数据流式计算最早的应用领域。在金融银行系统内部,每时每刻都有大量的结构化数据在各个系统间流动,并需要实时计算。同时,金融银行系统与其他系统也有着大量的数据流动,这些数据不仅有结构化数据,也会有半结构化和非结构化数据。通过对这些大数据的流式计算,发现隐含于其中的内在特征,可以帮助金融银行系统进行实时决策。在金融银行的实时监控场景中,大数据流式计算往往体现出了自身的优势。
●风险管理:包括信用卡诈骗、保险诈骗、证券交易诈骗、程序交易等,这些需要实时跟踪发现。
●营销管理:如根据客户信用卡消费记录,掌握客户的消费习惯和偏好,预测客户未来的消费需求,并为其推荐个性化的金融产品和服务。
●商业智能:如掌握金融银行系统内部各系统的实时数据,实现对全局状态的监控和优化,并提供决策支持。
第3章 数据
69
PDF 物理页索引 86
文件中的第 87 页 · 印刷页码:70
(2)互联网领域的应用
随着互联网技术的不断发展,特别是Web2.0时代的到来,用户可以实时分享和提供各类数据。不仅使得数据量大为增加,也使得数据更多地以半结构化和非结构化的形态呈现。据统计,目前互联网中75%的数据来源于个人,主要以图片、音频、视频数据形式存在,需要实时分析和计算这些大量、动态的数据。在互联网领域中,大数据流式计算的典型应用场景如下。
搜索引擎:搜索引擎提供商们往往会在反馈给客户的搜索页面中加入点击付费的广告信息。插入什么广告、在什么位置插入这些广告才能得到最佳效果,往往需要根据客户的查询偏好、浏览历史、地理位置等综合语义进行决定。而这种计算对于搜索服务器而言往往是大量的:一方面,每时每刻都会有大量客户进行搜索请求;另一方面,数据计算的时效性极低,需要保证极短的响应时间。
●社交网站:需要实时分析用户的状态信息,及时提供最新的用户分享信息给相关的朋友,准确地推荐朋友,推荐主题,提升用户体验,并能及时发现和屏蔽各种欺骗行为。
(3) 物联网领域的应用
在物联网环境中(如环境监测),各个传感器产生大量数据。这些数据通常包含时间、位置、环境和行为等内容,具有明显的颗粒性。由于传感器的多元化、差异化以及环境的多样化,这些数据呈现出鲜明的异构性、多样性、非结构化、有噪声、高增长率等特征。所产生的数据量之密集、实时性之强、价值密度之低是前所未有的,需要进行实时、高效的计算。在物联网领域中,大数据流式计算的典型应用场景如下。
●智能交通:通过传感器实时感知车辆、道路的状态,并分析和预测一定范围、一段时间内的道路流量情况,以便有效地进行分流、调度和指挥。
●环境监控:通过传感器和移动终端对一个地区的环境综合指标进行实时监控、远程查看、智能联动、远程控制,系统地解决综合环境问题。
上述这些应用场景对计算系统的实时性、吞吐量、可靠性等方面都提出了很高要求。大数据流式计算的3种典型应用场景的对比如下。
●从数据的产生方式看,金融银行领域的数据往往是在系统中被动产生的,互联网领域的数据往往是人为主动产生的,物联网领域的数据往往是由传感器等设备自动产生的。
从数据的规模来看,金融银行领域的数据与互联网、物联网领域的数据相比较少,物联网领域的数据规模是最大的,但受制于物联网的发展阶段,当前实际拥有数据规模最大的是互联网领域。
从技术成熟度来看,金融银行领域的流式大数据应用最为成熟,从早期的复杂事件处理开始就呈现了大数据流式计算的思想,互联网领域的发展将大数据流式计算真正推向历史舞台,物联网领域的发展为大数据流式计算提供了重要的历史机遇。
3.3.2流式大数据的特征
图3-5用有向无环图(Directed Acyclic Graph,DAG)描述了大数据流的计算过程。其中,
人工智能与大数据技术导论
70
PDF 物理页索引 87
文件中的第 88 页 · 印刷页码:71
圆形表示数据的计算节点,箭头表示数据的流动方向。
- 实时性
流式大数据是实时产生、实时计算的,结果反馈往往也需要保证及时性。流式大数据价值的有效时间往往较短,大部分数据到来后直接在内存中进行计算并丢弃,只有少量数据才被长久保存到硬盘中。这就需要系统有足够的低延迟计算能力,可以快速地进行数据计算,在数据价值有效的时间内体现数据的有用性。对于时效性特别短、潜在价值又很大的数据可以优先计算。
- 易失性
在大数据流式计算环境中,数据流往往是到达后立即被计算并使用。在一些应用场景中,只有极少数的数据才会被持久化地保存下来,大多数数据往往会被直接丢弃。数据的使用往往是一次性的、易失的,即使重放,得到的数据流和之前的数据流往往也是不同的。这就需要系统具有一定的容错能力,要充分地利用好仅有的一次数据计算机会,尽可能全面、准确、有效地从数据流中得出有价值的信息。
- 突发性
在大数据流式计算环境中,数据的产生完全由数据源确定,由于不同的数据源在不同时空范围内的状态不统一且发生动态变化,导致数据流的速率呈现出了突发性的特征。前一时刻的数据速率和后一时刻的数据速率可能会有巨大的差异,这就需要系统具有很好的可伸缩性,能够动态适应不确定流入的数据流,具有很强的系统计算能力和大数据流量动态匹配的能力。一方面,在突发高数据速率的情况下,保证不丢弃数据,或者识别并选择性地丢弃部分不重要的数据:另一方面,在低数据速率的情况下,保证不会太久或过多地占用系统资源。
- 无序性
在大数据流式计算环境中,各数据流之间、同一数据流内部各数据元素之间是无序的:一方面,由于各个数据源之间是相互独立的,所处的时空环境也不尽相同,因此无法保证数据流间的各个数据元素的相对顺序;另一方面,即使是同一个数据流,由于时间和环境的动态变化,也无法保证重放数据流和之前数据流中数据元素顺序的一致性。这就需要系统在数据计算过程中具有很好的数据分析和发现规律的能力,不能过多地依赖数据流间的内在逻辑或者数据流内部的内在逻辑。
第3章 数据
71
PDF 物理页索引 88
文件中的第 89 页 · 印刷页码:72
- 无限性
在大数据流式计算中,数据是实时产生、动态增加的,只要数据源处于活动状态,数据就会一直产生和持续增加下去。可以说,潜在的数据量是无限的,无法用一个具体确定的数据实现对其进行量化,需要系统具有很好的稳定性,保证系统长期而稳定地运行。
3.3.3 流式计算关键技术
针对具有实时性、易失性、突发性、无序性、无限性等特征的流式大数据,理想的大数据流式计算系统应该表现出低延迟、高吞吐、持续稳定运行和弹性可伸缩等特性,这其中离不开系统架构、数据传输、编程接口、高可用技术等关键技术的合理规划和良好设计。
- 系统架构
系统架构是系统中各子系统间的组合方式,属于大数据计算所共有的关键技术。当前,大数据流式计算系统采用的系统架构可以分为无中心节点的对称式系统架构(如S4、Puma等系统)和有中心节点的主从式架构(如Storm系统)。对称式系统架构如图3-6的左图所示,系统中各个节点的功能是相同的,具有良好的可伸缩性。但由于不存在中心节点,在资源调度、系统容错、负载均衡等方面需要通过分布式协议实现。例如,S4通过ZooKeeper实现系统容错、负载均衡等功能。
主从式系统架构如图3-6的右图所示,系统存在一个主节点和多个从节点,主节点负责系统资源的管理和任务的协调,并完成系统容错、负载均衡等方面的工作;从节点负责接收来自主节点的任务,并在计算完成后进行反馈。各个从节点间没有数据往来,整个系统的运行完全依赖于主节点控制。
2.数据传输
数据传输是指完成有向任务图到物理计算节点的部署之后,各个计算节点之间的数据传输方式。在大数据流式计算环境中,为了实现高吞吐和低延迟,需要更加系统地优化有向任务图以及有向任务图到物理计算节点的映射方式。在大数据流式计算环境中,数据的传输方式分为主动推送方式(基于push方式)和被动拉取方式(基于pull方式)。
主动推送方式是在上游节点产生或计算完数据后,主动将数据发送到相应的下游节点,其本质是让相关数据主动寻找下游的计算节点,当下游节点报告发生故障或负载过重时,将后续数据流推送到其他相应节点。主动推送方式的优势在于数据计算的主动性和及时性,但由于数据是主动推送到下游节点的,往往不会过多地考虑下游节点的负载状态、工作状态等因素,可能会导致下游部分节点负载不够均衡。
人工智能与大数据技术导论
72
PDF 物理页索引 89
文件中的第 90 页 · 印刷页码:73
被动拉取方式是只有下游节点显式进行数据请求,上游节点才会将数据传输到下游节点,其本质是让相关数据被动地传输到下游计算节点。被动拉取方式的优势在于下游节点可以根据自身的负载状态、工作状态适时地进行数据请求,但上游节点的数据可能未必得到及时的计算。
大数据流式计算的实时性要求较高,数据需要得到及时处理,往往选择主动推送的数据传输方式。当然,主动推送方式和被动拉取方式不是完全对立的,也可以将两者进行融合,从而在一定程度上实现更好的效果。
- 编程接口
编程接口用于方便用户根据流式计算的任务特征,通过有向任务图来描述任务内在逻辑和依赖关系,并编程实现任务图中各节点的处理功能。用户策略的定制、业务流程的描述和具体应用的实现需要通过大数据流式计算系统提供的应用编程接口。良好的应用编程接口可以方便用户实现业务逻辑,减少编程工作量,并降低系统功能的实现门槛。
当前,大多数开源大数据流式计算系统都提供了类似于MapReduce的用户编程接口。例如,Storm提供Spout和Bolt应用编程接口,用户只需要定制Spout和Bolt的功能,并规定数据流在各个Bolt间的内在流向,明确数据流的有向无环图,即可满足对流式大数据的高效实时计算。也有部分大数据流式计算系统为用户提供了类SQL的应用编程接口,并给出了相应的组件,便于应用功能的实现。
- 高可用技术
大数据批量计算将数据事先存储到持久设备上,节点失效后容易实现数据重放。而大数据流式计算对数据不进行持久化存储,因此批量计算中的高可用技术不完全适用于流式计算环境。我们需要根据流式计算的新特征及其新的高可用要求有针对性地研究更加轻量、高效的高可用技术和方法。大数据流式计算系统的“高可用性”是通过状态备份和故障恢复策略实现的。当故障发生后,系统根据预先定义的策略进行数据的重放和恢复。按照实现策略,可以细分为被动等待(passive standby)、主动等待(active standby)和上游备份(upstreambackup)3种。
被动等待策略如图3-7左图所示,主节点B进行数据计算,副本节点B′处于待命状态,系统会定期地将主节点B上最新的状态备份到副本节点B′上。出现故障时,系统从备份数据中进行状态恢复。被动等待策略支持数据负载较高、吞吐量较大的场景,但故障恢复时间较长,可以通过对备份数据的分布式存储缩短恢复时间。该方式更适合精确式数据的恢复,可以很好地支持不确定性的计算应用,在当前流式数据计算中应用得最为广泛。
主动等待策略如图3-7右图所示,系统在为主节点B传输数据的同时,也为副本节点B传输一份数据副本,以主节点B为主进行数据计算,当主节点B出现故障时,副本节点B'完全接管主节点B的工作。主副节点需要分配同样的系统资源。这种方式故障恢复时间最短,但数据吞吐量较小,也浪费了较多的系统资源。在广域网环境中,系统负载往往不是过大时,主动等待策略是一个比较好的选择,可以在较短的时间内实现系统恢复。
第3章 数据
73