什么是Spark
Apache Spark是一种快速通用的集群计算系统。它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎。它还支持一组丰富的更高级别的工具,包括Spark SQL用户SQL和结构化数据处理,MLlib 机器学习,GraphX用户图形处理
下载
从项目网站的下载页面获取Spark 。本文档适用于Spark版本2.3.2。Spark使用Hadoop的客户端库来实现HDFS和YARN。下载是针对少数流行的Hadoop版本预先打包的。用户还可以通过增加Spark的类路径下载“Hadoop免费”二进制文件并使用任何Hadoop版本运行Spark 。Scala和Java用户可以使用Maven坐标在他们的项目中包含Spark,并且将来Python用户也可以从PyPI安装Spark。
如果想要从源码构建Spark, 访问Building Spark
运行示例
Spark附带了几个示例程序。Scala,Java,Python和R示例都在 examples/src/main目录中。
要运行其中一个Java或Scala示例程序,请 bin/run-example <class> [params]
在顶级Spark目录中使用。
./bin/run-example SparkPi 10
还可以通过Scala shell的修改版本以交互方式运行Spark。
./bin/spark-shell --master local[2]
该--master
选项指定分布式集群的 主URL,或local
使用一个线程local[N]
在本地运行,或使用N个线程在本地运行。应该从使用local
测试开始。有关选项的完整列表,请使用该--help
选项运行Spark shell 。
Spark还提供了Python API。要在Python解释器中以交互方式运行Spark,使用 bin/pyspark:
./bin/pyspark --master local[2]
Python中也提供了示例应用程序。例如,
./bin/spark-submit examples/src/main/python/pi.py 10
Spark还提供了自1.4以来的实验性R API(仅包括DataFrames API)。要在R解释器中以交互方式运行Spark,请使用bin/sparkR
:
./bin/sparkR --master local[2]
R中也提供了示例应用程序。例如,
./bin/spark-submit examples/src/main/r/dataframe.R
在集群上使用Spark
Spark 群集模式概述说明了在群集上运行的关键概念。Spark既可以自己运行,也可以通过几个现有的集群管理器运行。它目前提供了几种部署选项:
- 独立部署模式:在专用群集上部署Spark的最简单方法
- Apache Mesos
- Hadoop YARN
- Kubernetes
编程指南
- 快速入门:Spark API的快速入门; 从这里开始!
RDD编程指南:Spark基础知识概述 – RDD
Spark SQL,Datasets和DataFrames:使用关系查询处理结构化数据
结构化流:使用关系查询处理结构化数据流
Spark Streaming:使用DStreams处理数据流
- MLlib:应用机器学习算法
API 文档
部署指南
群集概述:在群集上运行时概念和组件的概述
提交应用程序:打包和部署应用程序
部署模式:
- Amazon EC2:允许您在大约5分钟内在EC2上启动集群的脚本
- 独立部署模式:无需第三方集群管理器即可快速启动独立集群
- Mesos:使用Apache Mesos部署私有集群
- YARN:在Hadoop NextGen(YARN)之上部署Spark
- Kubernetes:在Kubernetes上部署Spark
其他文件
- 配置:通过其配置系统自定义Spark
- 监控:跟踪应用程序的行为
- 调优指南:优化性能和内存使用的最佳实践
- 作业调度:在Spark应用程序内部和内部调度资源
- 安全性:Spark安全支持
- 硬件配置:群集硬件的建议
- 与其他存储系统集成:
- 构建Spark:使用Maven系统构建Spark
- 为Spark做贡献
- 第三方项目:相关的第三方Spark项目
外部资源: