如何使用 Hadoop 构建大规模数据产品?

阅读数:456 2019 年 9 月 29 日 11:11

如何使用Hadoop构建大规模数据产品?

什么是数据科学家?Josh Wills 经常被引用的推文 给我们提供了以下定义:

数据科学家(名词):指比所有软件工程师更擅长统计学,并且比所有统计学家更擅长软件工程的人。

当然,这与数据产品仅仅是数据与统计算法的结合这一想法十分吻合。软件工程和统计学知识都是数据科学的基础。然而,在一个需要产品从数据中获取价值并产生新数据的经济体系中,构建数据产品其实就是数据科学家的工作。

Harlan Harris 提供了有关数据产品的更多细节:它们建立在数据、领域知识、软件工程和分析技术的交叉点上。由于数据产品是系统,因此构建它们需要工程技能,通常是软件工程方面的技能;由于它们由数据驱动,因此拥有数据是必要条件;领域知识和分析技术是用于构建数据引擎的工具,通常通过实验完成,因此是数据科学的“科学”部分。

由于需要使用实验方法学,因此大多数数据科学家会采用典型的分析工作流:采集 → 整理 → 建模 → 报告和可视化。然而,这种所谓的数据科学流水线完全由人力驱动,再辅以脚本语言(如 R 和 Python)的使用。流水线的每一个环节都需要人类的知识和分析技能,意在产生独特且不可泛化的结果。虽然这个流水线是很好的统计和分析基础框架,但它不能满足构建数据产品的需求,特别是当想从中获取价值的目标数据大到无法在一台笔记本电脑上处理时。随着数据越来越多、越来越多变、产生的速度越来越快,自动获取有用信息而无须人工干预的工具也变得越来越重要。

利用大型数据集

直觉告诉我们,观测越多,数据就越多——这真让人喜忧参半。人类拥有发现大规模模式的卓越能力(我们以森林和林中空地作为隐喻)。理解数据的认知过程涉及概览数据,深入研究具体层面的细节,然后再回到概览角度。这个过程中的细节并不一定可靠,因为细粒度(隐喻中的叶子、分枝或单棵树木)会限制我们的理解能力。多数数据既可能是模式和信号,也可能是噪声和干扰。

通过聚合和索引描述数据,或者直接对数据建模,统计方法使我们能够处理掺杂着噪声和信号的数据。虽然这些技术能帮助我们理解数据,但是它们以牺牲计算粒度为代价,例如有意义的罕见事件可能会被模型排除。兼顾罕见事件的统计技术能利用计算机同时跟踪多个数据点,但也需要更多的计算资源。因此,传统的统计方法会对较大的数据集采取抽样方法,用较小的数据子集替代总体。样本越大,模型包括罕见事件且能将其捕获的可能性就越大。

随着收集数据的能力越来越高,我们对通用性也有了更大的需求。过去十年间,由于数据和机器学习算法的紧密结合,新颖的成果纷纷问世,数据科学得到了空前的发展。智能电网、“量化自我”、移动技术、传感器和互联家庭要求我们应用个性化的统计推断。规模不仅与数据量有关,也与需要探索多少方面有关——就好像森林中的每棵树一样。

Google 的两篇论文描述了一个完整的分布式计算系统;Hadoop 是其开源实现,它将我们带入了大数据时代。然而,分布式计算和分布式数据库系统并不是新的话题。在那两篇论文发表之前,与 Hadoop 的计算能力相当的数据仓库系统就早已存在于工业界和学术界。Hadoop 之所以与众不同,一方面是因为数据处理能带来经济效益,另一方面是因为 Hadoop 是一个平台。但是真正使 Hadoop 独树一帜的原因其实是它出现的时机——恰恰在一个需要大规模数据分析解决方案的时刻,它问世了。而且它不仅能分析总体的统计数据,还能获得个体级别的通用性和洞察力。

数据产品中的 Hadoop

一开始,Hadoop 的使用者是那些面临大数据挑战的大公司,比如 Google、Facebook 和 Yahoo。然而,Hadoop 之所以这么重要,以及促使你拿起本书的原因,恰恰是因为面临数据挑战的不再只是科技巨擘。大大小小的商业机构和政府机构——从企业到创业公司,再到联邦机构和市政府,甚至是每个人,都面临着数据挑战。计算资源变得廉价且唾手可得——就像 PC 时代的黑客在车库里使用手边的电子产品搞创新,现在的创业公司使用 10 节点~ 20 节点的小集群在数据探索上搞创新。云计算资源(如 Amazon EC2 和 Google Compute Engine)使数据科学家可以及时、按需地访问大规模集群,而且成本较低,也无须进行数据中心管理。Hadoop 使大数据计算更贴近大众,也更平易近人,下面的例子说明了这一点。

2011 年,Lady Gaga 发行了她的专辑 Born This Way,这个事件为社交媒体带来了约 1.3 万亿条信息,包括点赞、推文、图像和视频。Lady Gaga 的经纪人 Troy Carter 马上发现了一个将粉丝聚集起来的机会。经过大量的数据挖掘工作,他成功将 Twitter 和 Facebook 上的数百万粉丝聚集到了 LittleMonsters.com 这个只针对 Lady Gaga 的小社交网络中。该网站的成功促使 Backplane(现在叫 Place)诞生,这是一个用于生成和管理由小型社区驱动的社交网络的工具。

2015 年,纽约市警察局安装了一个价值 150 万美元的声学传感器网络,名叫 ShotSpotter。该系统能够检测与爆炸或枪击相关的脉冲声,使应急响应人员能够快速响应在布朗克斯区发生的事件。重要的是,这个系统还很智能,可以预测是否会发生后续的枪击事件及其大致位置。ShotSpotter 系统发现,自 2009 年以来,有超过 75%的枪击事件没有报告给警察。

“量化自我”运动越来越受欢迎,各家公司也一直努力在消费者中广泛普及可穿戴技术设备、个人数据收集设备,甚至是基因测序仪器。2012 年,美国的《平价医疗法案》规定健康计划对电子病历实施标准化、安全、保密的共享方法。互联家庭、移动设备以及其他个人传感器每天都在产生大量个人数据,这引发了人们对隐私的关注。2015 年,英国研究人员创建了 Hub of All Things(HAT)。这是一项个性化的数据集合技术,用于处理“谁拥有你的数据”这一问题,并为个人数据的聚合提供技术解决方案。

传统上,大规模的个人数据分析一直属于社交网络的范畴,如 Facebook 和 Twitter。但幸好有了 Place,大型社交网络现在成为了个人品牌和艺术家的诞生之地。每个城市面临的数据挑战都不一样,尽管针对典型城市的泛化可以满足许多分析的需求,但是新的数据挑战仍然不断出现,对每个城市分别进行研究势在必行。(比如工业、航运或天气对声学传感器网络有什么影响?)怎样使技术为消费者提供价值,在使用他们的个人医疗记录时不侵犯他们的隐私,避免与其他人的记录聚合?怎样使个人医疗诊断数据挖掘变得更安全?

数据产品的出现正是为了切实回答这些问题。Place、ShotSpotter、“量化自我”产品和 HAT 等通过提供应用程序平台和决策资源供人们采取行动,从数据中获取价值并产生新数据。它们提供的价值是明确的,但要处理数万亿的点赞数据和数百万个麦克风生成的大量数据集,或者我们每天生成的海量个人数据,传统的软件开发工作流无法应对这一挑战。大数据工作流和 Hadoop 使这些应用程序成为可能并且可个性化。

本文内容来自作者图书作品《Hadoop 数据分析》,点击购买

评论

发布