Spark学习笔记

Spark概述

2017-11-11  本文已影响0人  LestatZ

Apache Spark

Apache Spark是一个开源的分布式通用计算框架,具有(大部分)内存数据处理引擎,可以对大量的数据静态或者动态地进行ETL,分析,机器学习和图形处理,并为各种编程语言提供丰富简洁的高级APIs: Scala, Python, Java, R 以及SQL。

The Spark Platform

你可以将Spark看做一个分布式的数据处理引擎,用于批量和流式模式,包括SQL查询,图形处理和机器学习。

和Hadoop基于磁盘的两阶段MapReduce计算引擎相比,Spark的多阶段内存计算引擎运行在内存中运行大部分计算,因此在大多数情况下能为某些应用程序提供更好的性能,例如迭代算法和交互式数据挖掘。

Spark也经常被称作集群计算引擎,或者简单地称作执行引擎。
Spark可用于执行复杂的多阶段应用程序,如机器学习算法和交互式即席查询。Spark为内存集群计算提供了一个高效的数据抽象,称作弹性分布式数据集(Resilient Distributed Dataset, RDD)

Spark主要用Scala编写,但它为开发者提供其他语言的API,如Java, Python和R。

如果你需要在低延迟的条件下处理大量的数据(传统的MR程序无法满足),那么Spark是一个可行的选择。

Spark可以以本地集群的形式,在本机或者云端运行。它运行在Hadoop YARN, Apache Mesos, 独立部署模式或者云端部署(Amazon EC2或IBM Bluemix)之上。

在高层次上,Spark应用程序利用输入数据来创建RDDs, 将它们通过延迟转换函数(lazy transformations)转换为其他形式,最后执行操作(Actions)来收集或者存储数据,不难吧?

程序员使用指定语言的API以及转换和操作在RDD上工作,数据工程师使用更高级别的数据抽象如DataFrame,Pipelines APIs或者外部工具(连接到Spark)来工作,最后由管理员调节集群参数以部署Spark应用程序。

Spark的目标以更快的计算速度,更易于使用,更好的扩展性以及交互式分析等,成为一个通用的计算平台,让各种专门的应用程序框架运行在其之上。

为什么用Spark

上一篇 下一篇

猜你喜欢

热点阅读