Spark概述
Apache Spark是一个快速的通用集群计算系统。它提供Java,Scala,Python和R中的高级API,以及支持常规执行图的优化引擎。它还支持一组丰富的更高级别的工具,包括星火SQL用于SQL和结构化数据的处理,MLlib机器学习,GraphX用于图形处理和星火流。
安全
默认情况下,Spark中的安全性处于关闭状态。这可能意味着您默认情况下容易受到攻击。下载并运行Spark之前,请参阅Spark Security。
正在下载
从项目网站的下载页面获取Spark 。本文档适用于Spark版本2.4.4。Spark将Hadoop的客户端库用于HDFS和YARN。下载已预先打包为少数流行的Hadoop版本。用户还可以下载“免费的Hadoop”二进制文件,并通过扩展Spark的classpath在任何Hadoop版本上运行Spark 。Scala和Java用户可以使用其Maven坐标将Spark包含在其项目中,并且将来Python用户还可以从PyPI安装Spark。
如果您想从源代码构建Spark,请访问Building Spark。
Spark可在Windows和类似UNIX的系统(例如Linux,Mac OS)上运行。在一台机器上本地运行很容易-您所需要的只是java
在系统上安装PATH
或JAVA_HOME
指向Java安装的环境变量。
Spark在Java 8,Python 2.7 + / 3.4 +和R 3.1+上运行。对于Scala API,Spark 2.4.4使用Scala 2.12。您将需要使用兼容的Scala版本(2.12.x)。
请注意,自Spark 2.2.0起已删除了对Java 7,Python 2.6和2.6.5之前的旧Hadoop版本的支持。从2.3.0版本开始,不再支持Scala 2.10。从Spark 2.4.1开始不支持Scala 2.11,它将在Spark 3.0中删除。
运行示例和外壳
Spark附带了几个示例程序。目录中有Scala,Java,Python和R示例 examples/src/main
。要运行Java或Scala示例程序之一,请 bin/run-example <class> [params]
在顶级Spark目录中使用。(在后台,这将调用更通用的 spark-submit
脚本来启动应用程序)。例如,
./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
从1.4开始,Spark还提供了实验性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的最简单方法
- Apache Mesos
- Hadoop纱
- Kubernetes
从这往哪儿走
编程指南:
- 快速入门:Spark API快速入门;从这里开始!
- RDD编程指南:Spark基础概述-RDD(核心但旧的API),累加器和广播变量
- Spark SQL,数据集和数据框架:通过关系查询(比RDD更新的API)处理结构化数据
- 结构化流:使用关系查询处理结构化数据流(使用数据集和数据帧,比DStreams更新的API)
- Spark Streaming:使用DStreams处理数据流(旧API)
- MLlib:应用机器学习算法
- GraphX:处理图形
API文件:
- Spark Scala API(Scaladoc)
- Spark Java API(Javadoc)
- Spark Python API(Sphinx)
- Spark R API(Roxygen2)
- Spark SQL,内置函数(MkDocs)
部署指南:
- 集群概述:在集群上运行时的概念和组件概述
- 提交应用程序:打包和部署应用程序
- 部署方式:
- Amazon EC2:可使您在大约5分钟内在EC2上启动集群的脚本
- 独立部署模式:无需第三方集群管理器即可快速启动独立集群
- Mesos:使用Apache Mesos部署私有集群
- YARN:在Hadoop NextGen(YARN)之上部署Spark
- Kubernetes:在Kubernetes之上部署Spark
其他文件:
- 配置:通过其配置系统自定义Spark
- 监视:跟踪应用程序的行为
- 调优指南:优化性能和内存使用的最佳做法
- 作业调度:在Spark应用程序之间和内部调度资源
- 安全性:Spark安全性支持
- 硬件配置:有关群集硬件的建议
- 与其他存储系统集成:
- 构建Spark:使用Maven系统构建Spark
- 为Spark贡献
- 第三方项目:相关的第三方Spark项目
外部资源: