写点什么

深度分析数据科学流水线和 Hadoop 生态系统

  • 2019-09-29
  • 本文字数:1966 字

    阅读完需:约 6 分钟

深度分析数据科学流水线和Hadoop生态系统

数据科学流水线是一种教学模型,用于教授对数据进行全面统计分析所需的工作流,如图 1-1 所示。在每个环节中,分析人员要转换初始数据集,然后从各种数据源增强或采集数据,再通过描述性或推断性的统计方法将数据整理为可以计算的正常形式,最后通过可视化或报告的形式生成结果。这些分析过程通常用于回答特定问题,或用于调查数据与某些业务实践间的关系,以进行验证或决策。



图 1-1:数据科学流水线


这个原始的工作流模型引领了大多数早期的数据科学思想。最初关于数据科学应用程序的讨论围绕着如何创建有意义的信息可视化——这也许令人意外,主要是因为这个工作流旨在生成帮助人们进行决策的依据。通过对大型数据集的聚合、描述和建模,人们能够更好地根据模式(而不是单个数据点)作出判断。数据可视化是新生的数据产品,它们从数据中产生价值,帮助人们基于学习到的内容采取行动,然后再从这些行动中生成新数据。


然而,面对呈指数增长的数据量和数据增长速度,这种以人力驱动的模型并不是一个可扩展的解决方案,这也正是许多企业都为之抓狂的原因。根据预测,到 2020 年,我们每年生成和复制的数据将达到 44ZB,即 44 万亿 GB。即使实际规模只达到预测规模的一小部分,手动的数据准备和挖掘方法也根本无法及时提供有意义的信息。


除了规模上的局限,这种以人为中心的单向工作流也不能有效地设计能够学习的自适应系统。机器学习算法已经广泛应用于学术界之外,非常符合数据产品的定义。因为模型会拟合现有的数据集,所以这些类型的算法可以从数据中获取价值,然后通过对新的观察值作出预测来产生新的数据。


如果要创建一个框架,支持构建可扩展和可自动化的解决方案,从而能解释数据和生成有用的信息,就必须修改数据科学流水线,使其包含机器学习方法的反馈循环。

大数据工作流

考虑到可扩展性和自动化的目标,我们可以将人力驱动的数据科学流水线重构为包括采集、分段、计算和工作流管理这 4 个主要阶段的迭代模型(如图 1-2 所示)。与数据科学流水线一样,这种模型其实就是采集原始数据并将其转换为有用的信息。关键的区别在于,数据产品流水线是在操作化和自动化工作流的步骤中构建起来的。通过将采集、分段和计算这 3 个步骤转换为自动化工作流,最终产生可重用的数据产品。工作流管理步骤还引入了反馈流机制,来自其中一个作业执行的输出可以自动作为下一次迭代的数据输入,因此为机器学习应用程序提供了必要的自适应框架。



图 1-2:大数据流水线


采集阶段既是模型的初始化阶段,也是用户和模型之间的应用交互阶段。在初始化期间,用户指定数据源的位置或标注数据(另一种数据采集形式);在交互期间,用户消费模型的预测结果并提供用于巩固模型的反馈。


分段阶段是转换数据的阶段,使其变为可消费的形式并存储起来,从而能够用于处理。本阶段还负责数据的归一化和标准化,以及一些计算数据存储中的数据管理工作。


计算阶段是真正“干活”的阶段,主要负责挖掘数据以获取有用的信息,执行聚合或报告,构建用于推荐、聚类或分类的机器学习模型。


工作流管理阶段执行抽象、编排和自动化任务,使工作流的各步骤可用于生产环境。此步骤应能产生自动按需运行的应用程序、作业或脚本。


Hadoop 已经演变成了包含各种工具的生态系统,可以实现上述流水线的部分环节。例如,Sqoop 和 Kafka 可用于数据采集,支持将关系数据库导入 Hadoop 或分布式消息队列,以进行按需处理。在 Hadoop 中,像 Hive 和 HBase 之类的数据仓库提供了大规模的数据管理机会;Spark 的 GraphX、MLlib 或 Mahout 库提供了分析包,供大规模计算和验证使用。在本书中,我们将探索 Hadoop 生态系统的许多组件,并了解它们如何融入整个大数据流水线。

总结

在过去十年间,关于“什么是数据科学”的讨论发生了巨大变化——从纯分析到与可视化相关的方法,再到如今数据产品的创建。数据产品是使用数据训练、自适应且广泛适用的经济引擎,从数据中获取价值并产生新的数据。数据产品引发了一次信息经济革命,改变了小企业、技术创业公司、大型组织甚至政府机构看待其数据的方式。


本文描述了数据科学流水线原始教学模型的一个改良版本,并提出了数据产品流水线。数据产品流水线是迭代的,包括两个阶段:构建阶段和运行阶段(包括 4 个阶段:交互、数据、存储和计算)。这种架构可以有条不紊地执行大规模的数据分析,保留了实验、人与数据产品间的交互。而且当围绕数据产品构建的应用程序很大时,它还能支持部分环节的自动化。希望这个流水线可以帮你了解数据产品生命周期的大体框架,也能成为探索更多创新项目的基石。


因为本书是从数据科学家的角度探讨分布式计算和 Hadoop,所以我们认为,Hadoop 的作用是从大量不同来源采集多种形式的数据(其中包含大量实例、事件和类),并将其转换为有价值的事物——数据产品。


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


2019-09-29 14:331770
用户头像

发布了 33 篇内容, 共 13.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

【LeetCode】找树左下角的值Java题解

Albert

LeetCode 7月月更

2022 · 让我带你Jetpack架构组件从入门到精通 — Lifecycle

编程的平行世界

an'droid android jetpack

进入前六!博云在中国云管理软件市场销量排行持续上升

BoCloud博云

云原生 cmp 云管理

Linux设备驱动1:硬件基础

贾献华

7月月更

焱融看 | 混合云时代下,如何制定多云策略

焱融科技

存储 文件存储 混合云 多云

hive数据导入:文件导入

怀瑾握瑜的嘉与嘉

大数据 hive 7月月更

DBPack 赋能 python 微服务协调分布式事务

峨嵋闲散人

分布式事务 分库分表 读写分离 seata dbmesh

从MLPerf谈起:如何引领AI加速器的下一波浪潮

OneFlow

人工智能 深度学习 加速器

8款最佳实践,保护你的 IaC 安全!

SEAL安全

安全 IaC

6年技术迭代,阿里全球化出海&合规的挑战和探索

阿里技术

阿里巴巴 最佳实践 方法论 全球化

开源者的自我修养|为 ShardingSphere 贡献了千万行代码的程序员,后来当了 CEO

SphereEx

开源 代码 ShardingSphere

学会使用LiveData和ViewModel,我相信会让你在写业务时变得轻松🌞

编程的平行世界

JetPack Andriod

SpringSecurity的初始化流程

急需上岸的小谢

7月月更

【Python技能树共建】requests-html库初识

梦想橡皮擦

7月月更

使用强大的DBPack处理分布式事务(PHP使用教程)

峨嵋闲散人

分布式事务 分库分表 读写分离 seata dbmesh

龙蜥社区开源 coolbpf,BPF 程序开发效率提升百倍

OpenAnolis小助手

Linux 开源 内核 龙蜥技术 BPF

研发效能度量框架解读

思码逸研发效能

研发效能 效能度量

孔松(信通院)-数字化时代云安全能力建设及趋势

火线安全

云安全 云安全技术 云安全研究

超90万个K8S实例可被发现暴露在公网上,14%位于中国

SEAL安全

安全

2022上半年英特尔有哪些“硬核创新”?看这张图就知道了!

科技之家

当你真的学会DataBinding后,你会发现“这玩意真香”!

编程的平行世界

JetPack andiod

JVM有哪些类加载机制?

源字节1号

软件开发

介绍一种对 SAP GUI 里的收藏夹事务码管理工具增强的实现方案

汪子熙

SAP abap SAPGUI 企业管理软件 7月月更

Fiori 应用通过 Adaptation Project 的增强方式分享

汪子熙

前端开发 SAP Fiori SAP UI5 7月月更

Java培训 | 详解 Linux 中的权限,这一篇就够了

@零度

Linux JAVA开发

SpringBoot工程创建Swagger文档并自动生成调用代码

老豆还编程

JavaScript Spring Boot swagger

web前端培训Docker入门指南

@零度

Docker 前端开发

大数据培训 | Scala语言知识分享,直击面试

@零度

scala 大数据开发

Go Web 编程入门:一探 GoConvey 测试库

宇宙之一粟

Go web Go 语言 7月月更

一文读懂TDengine的窗口查询功能

TDengine

tdengine 时序数据库

深度分析数据科学流水线和Hadoop生态系统_大数据_Benjamin Bengfort_InfoQ精选文章