技术丨为什么工业大数据处理领域,我只看好“ApacheSpark”?

第一产经 2019-07-29

"

随着物联网数据的激增以及运算能力的提升,工业大数据正在真正的进入落地阶段。


在未来的十年,以数据为核心构建的智能化体系会成为支撑智能制造和工业互联网的核心动力。

"

 

而想要理解大数据,就需要理解大数据相关的查询、处理、机器学习、图计算和统计分析等。


Apache Spark作为新一代轻量级大数据快速处理平台,集成了大数据相关的各种能力,是理解大数据的首选。



Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。


2009年,Spark诞生于伯克利大学AMPLab,最开初属于伯克利大学的研究性项目,最开始Spark只是一个实验性的项目,代码量非常少,仅有3900行代码左右,属于轻量级的框架;

2010年,伯克利大学正式开源了Spark项目;

2013年6月,Spark成为了Apache基金会下的项目,进入高速发展期,第三方开发者贡献了大量的代码,活跃度非常高;

2014年2月,Spark以飞快的速度称为了Apache的顶级项目;

2014年5月底Spark1.0.0发布;

2016年6月Spark2.0.0发布;

2018年11月Spark2.4.0 发布。


Spark作为Hadoop生态中重要的一员,其发展速度堪称恐怖,从诞生到成为Apache顶级项目不到五年时间,不过在如今数据量飞速增长的环境与背景下,Spark作为高效的计算框架能收到如此大的关注也是有所依据的。


1

Spark优势是什么?



首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求。


Spark 可以将Hadoop 集群中的应用在内存中的运行速度提升 100 倍,甚至能够将应用在磁盘上的运行速度提升 10 倍。


Spark 让开发者可以快速的用 Java、Scala 或 Python编写程序。它本身自带了一个超过 80 个高阶操作符集合。而且还可以用它在 shell 中以交互式地查询数据。


除了 Map 和 Reduce 操作之外,它还支持 SQL 查询,流数据,机器学习和图表数据处理。


开发者可以在一个数据管道用例中单独使用某一能力或者将这些能力结合在一起使用。


2

Hadoop 和 Spark的对比



Hadoop 这项大数据处理技术大概已有十年历史,而且被看做是首选的大数据集合处理的解决方案。


随着开源技术的被广泛使用,Hadoop已经成为事实上的大数据标准。


十几年前,企业数据还普遍是在数据仓库中处理,使用Oracle、SAP、IBM等数据相关软件,但随着互联网的发展,数据类型的多样化,对海量结构化、半结构化数据以及流式数据的处理需求,都成为了旧式商业软件的瓶颈。


在下一步开始之前,上一步的作业输出数据必须要存储到分布式文件系统中。


因此,复制和磁盘存储会导致这种方式速度变慢。另外 Hadoop 解决方案中通常会包含难以安装和管理的集群。


而且为了处理不同的大数据用例,还需要集成多种不同的工具(如用于机器学习的 Mahout 和流数据处理的 Storm)。


如果想要完成比较复杂的工作,就必须将一系列的 MapReduce 作业串联起来然后顺序执行这些作业。


每一个作业都是高时延的,而且只有在前一个作业完成之后下一个作业才能开始启动。


Spark 则允许程序开发者使用有向无环图(DAG)开发复杂的多步数据管道。


而且还支持跨有向无环图的内存数据共享,以便不同的作业可以共同处理同一个数据。


Spark 运行在现有的Hadoop 分布式文件系统基础之上(HDFS)提供额外的增强功能。


它支持将 Spark 应用部署到现存的Hadoop v1 集群(with SIMR – Spark-Inside-MapReduce)或 Hadoop v2 YARN 集群甚至是ApacheMesos之中。


我们应该将 Spark 看作是 Hadoop MapReduce 的一个替代品而不是 Hadoop 的替代品。


其意图并非是替代 Hadoop,而是为了提供一个管理不同的大数据用例和需求的全面且统一的解决方案。


3

Spark与工业互联平台 


工业互联网带来了工业数据的快速发展,对于日益增加的海量数据,传统单机因本身的软硬件限制无法应对海量数据的处理、分析以及深度挖掘,但作为分布式计算框架的Spark却能轻松应付这些场景。


在工业互联网平台上,Spark 既能快速实现工业现场海量流数据的处理转换,又能轻松应对工业大数据平台中海量数据的快速批处理分析,自身集成的机器学习框架能够对海量工业数据进行深度挖掘分析,从而帮助管理者进行决策分析。


基于Spark框架自身的优良设计理念以及社区的蓬勃发展状态,相信未来Spark会在工业互联网平台扮演越来越重要的角色。