什么是Spark,如何使用Spark进行数据分析

什么是Spark,如何使用Spark进行数据分析,第1张

Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法

数据科学家为了回答一个问题或进行深入研究,会使用相关姿搜庆的技术分析数据。通常,他们的工漏或作包含特殊的分析,所以他们使用交互式shell,以使得他们能在最短的时间内看到查询结果和代码片段。Spark的速度和简单的API接口很好地符合这个目标,它的内迹握建库意味着很多算法可以随时使用。

Spark通过若干组件支持不同的数据科学任务。Spark shell使得用Python或Scala进行交互式数据分析变得简单。Spark SQL也有一个独立的SQL shell,可以用SQL进行数据分析,也可以在Spark程序中或Spark shell中使用Spark SQL。MLlib库支持机器学习和数据分析。而且,支持调用外部的MATLAB或R语言编写的程序。Spark使得数据科学家可以用R或Pandas等工具处理包含大量数据的问题。

1、Spark 是基于内存的分布式计算框架,因为无需利用 HDFS 作为中间结果保存的介质,性能杠杠的。Spark 是由 Scala 实现的,所以最好学习一下 Scala(当然用 Python 和 Java 也是可以的)。(http://wdxtub.com/2016/04/11/spark-guide/)

为啥要用 Spark?

快!基于内存

易用!Scala, Java, Python 都支持,还有交互式的 Python 和 Scala 的 shell,可以快速进行原型开发

通用!批处理、交互查询、流处理、机器学习、图计算,样样精通

兼容!可以使用各种现有的技术或皮作为底层,也可以自己独立运行

Spark 生态系统有哪些组件?

Spark SQL: 类似 Hive,支持在不同 RDD 上进行类似 SQL 的 *** 作

Spark Streaming: 对于流数据进行处理

MLlib: 机器学习库

GraphX: 图并行框架

RDD 是什么?

在 Spark 框架中,最重要的是一类新的数据抽象,叫做 Resilient Distributed Dataset - RDD。RDD 是分布式存储在集群中的内存对象,按照值的范围或者哈希结果进行划分毕激。与此同时 RDD 会记录关于数据进行的各种 *** 作(每次 *** 作都会生成新的 RDD),这样即使节点挂掉,也能够根据之前的 *** 作日志重新得到损失的 RDD

RDD 支持2种 *** 作:

转换(transformation):从现有的数据集创建一个新的数据集

动作手团袜(actions):在数据集上运行计算后,返回一个值给驱动程序

2、实战java开发spark程序

https://my.oschina.net/csmw00/blog/672869

3、spark集群环境搭建

http://nekomiao.me/2016/12/05/spark-install-distributed/

Spark是通用数据处理引擎坦汪,适用于多种情况。 应用程序开发人员和数据科学家将Spark集成到他们的应用程序中,以快速地大规模查询,分析和转换数据。 与Spark最频繁相关的任务包括跨大型数据集的交互式查询,来自传感器或金融系统的流数据处理以及机器学习任务。

Spark于2009年开始运作,最初是加州大学伯克利分校AMPLab内部的一个项目。 更具体地说,它是出于证明Mesos概念的需要而诞生的,Mesos概念也是在AMPLab中创建的。 在Mesos白皮书《 Mesos:数据中心中的细粒度资源共享平台》让敬仔中首次讨论了Spark,其中最著名的作者是Benjamin Hindman和Matei Zaharia。

2013年,Spark成为Apache Software Foundation的孵化项目,并于2014年初被提升为该基金会的顶级项目之一。 Spark是基金会管理的最活跃的项目之一,围绕该项目成长的社区包括多产的个人贡献者和资金雄厚的企业支持者,例如Databricks,IBM和中国的华为。

从一开始,Spark就被优化为在内存中运行。 它比Hadoop的MapReduce等替代方法更快地处理数据,后者倾向于在处理的每个阶段之间向计算机硬盘写入数据或从计算机硬盘写入数据。 Spark的支持者声称,Spark在内存中的运行速度可以比Hadoop MapReduce快100倍,并且在以类似于Hadoop MapReduce本身的方式处理基于磁盘的数据时也可以快10倍。 这种比较并不完全公平,这不仅是因为稿乎原始速度对Spark的典型用例而言比对批处理更为重要,在这种情况下,类似于MapReduce的解决方案仍然很出色。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8248882.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存