Spark 概述
Apache Spark是一个快速和通用的集群计算系统。它提供Java,scala,Python、R语言的APIs,以及支持一般执行图形的优化引擎。 它还支持一组丰富的高级工具,包括用于SQL和结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图形处理的GraphX和Spark Streaming。
下载
从项目网站的下载页面获取Spark。本文档适用于Spark 2.1.0版本。 Spark使用Hadoop的客户端库用于HDFS和YARN。下载是预先打包的一些流行的Hadoop版本。用户还可以下载“Hadoop free”二进制文件,并通过扩充Spark的类路径,使用任何Hadoop版本运行Spark。 Scala和Java用户可以使用其maven cooridnates在他们的项目中包含Spark,并且在将来Python用户也可以从PyPI安装Spark。
如果你想从源代码编译Spark,请访问Building Spark。
Spark在Windows和类UNIX系统(例如Linux,Mac OS)上运行。它很容易在一台计算机上本地运行 – 所有你需要的是在系统PATH上安装java,或者JAVA_HOME环境变量指向Java安装位置。
Spark运行于Java 7+,Python 2.6 + / 3.4 +和R 3.1+。对于Scala API,Spark 2.1.0使用Scala 2.11。您将需要使用兼容的Scala版本(2.11.x)。
请注意,Java 7和Python 2.6的支持在从Spark 2.0.0已过时,并且对于Scala 2.10和2.6之前的Hadoop版本的支持在Spark 2.1.0中已过时,并且可能会在Spark 2.2.0中被删除。
运行示例和Shell
Spark附带了几个示例程序。 Scala,Java,Python和R示例在examples/src/ main目录中。 要运行Java或Scala示例程序之一,请在顶级Spark目录中使用bin / run-example [params]。 (在后台,这将调用更通用的spark提交脚本来启动应用程序)。 例如,
./bin/run-example SparkPi10
您还可以通过Scala shell的修改版本以交互方式运行Spark。 这是一个学习框架的好方法。
./bin/spark-shell--master local[2]
--master选项指定分布式集群的master URL,或者本地使用一个线程运行在本地,或者使用local [N]在本地使用N个线程运行。 您应该首先使用local进行测试。 有关选项的完整列表,请运行Spark shell 使用–help选项。
Spark还提供了一个Python API。 要在Python解释器中以交互方式运行Spark,请使用bin / pyspark:
./bin/pyspark--masterlocal[2]
示例应用程序也在Python中提供。 例如,
./bin/spark-submit examples/src/main/python/pi.py10
Spark自1.4以来提供了一个实验R API(仅包括DataFrames API)。 要在R解释器中以交互方式运行Spark,请使用bin / sparkR:
./bin/sparkR--masterlocal[2]
示例应用也在R中提供。例如,
./bin/spark-submit examples/src/main/r/dataframe.R
在群集上运行
Spark集群模式概述解释了在集群上运行的关键概念。 Spark可以单独运行,也可以通过多个现有集群管理器运行。 它目前提供了几个部署选项:
独立部署模式:在私有集群上部署Spark的最简单方法
从哪里入手
编程指南
快速入门:快速介绍Spark API; 从这里开始!
Spark编程指南:Spark所有支持的语言(Scala,Java,Python,R)
基于Spark的模块:
Spark Streaming:处理实时数据流
Spark SQL,Datasets和DataFrames:支持结构化数据和关系查询
MLlib:内置机器学习库
GraphX:Spark的新图形处理API
API Docs
部署指南
集群概述:在集群上运行的组件概述
提交应用程序:打包和部署应用程序
部署模式:
Amazon EC2:允许您在大约5分钟内在EC2上启动集群的脚本
独立部署模式:快速启动独立集群,无需第三方集群管理器
Mesos:使用Apache Mesos部署私有集群
YARN:在Spark上部署Hadoop的下一代(YARN)
其他文档
配置:- 通过其配置系统定制Spark
监视:跟踪应用程序的行为
优化指南:优化性能和内存使用的最佳做法
作业调度:在Spark应用程序内部和跨程序调度资源
安全:Spark安全支持
硬件配置:针对集群硬件的建议
与其他存储系统集成:
编译Spark:使用Maven系统构建Spark
第三方项目:相关第三方Spark项目
外部资源
Spark社区资源,包括当地meetups
邮件列表:在这里提出关于Spark的问题
网友评论