目录
1.简介
速度
将工作负载运行速度提高100倍。
Apache Spark使用最先进的DAG调度程序,查询优化器和物理执行引擎,实现批处理和流数据的高性能。
便于使用
使用Java,Scala,Python,R和SQL快速编写应用程序。
Spark提供80多个高级操作员,可以轻松构建并行应用程序。您可以 从Scala,Python,R和SQL shell中以交互方式使用它。
概论
结合SQL,流媒体和复杂的分析。
星火权力库的栈包括 SQL和DataFrames,MLlib机器学习, GraphX和星火流。您可以在同一个应用程序中无缝地组合这些库。
到处运行
Spark运行在Hadoop,Apache Mesos,Kubernetes,独立或云端。它可以访问各种数据源。
您可以使用其独立群集模式,EC2,Hadoop YARN,Mesos或Kubernetes运行Spark 。访问HDFS, Alluxio, Apache Cassandra, Apache HBase,Apache Hive以及数百个其他数据源中的数据。
2.Spark概述
Apache Spark是一种快速通用的集群计算系统。它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎。它还支持一组丰富的更高级别的工具,包括 Spark SQL 用于SQL和结构化数据的处理,MLlib机器学习,GraphX用于图形处理和Spark Streaming。
2.1.安全
Spark中的安全性默认为OFF。这可能意味着您很容易受到默认攻击。在下载和运行Spark之前,请参阅Spark Security。
2.2.下载
从项目网站的下载页面获取Spark 。本文档适用于Spark版本2.4.3。Spark使用Hadoop的客户端库来实现HDFS(Hadoop分布式文件系统)和YARN(快速、可靠、安全的依赖管理工具)。下载是针对少数流行的Hadoop版本预先打包的。用户还可以通过增加Spark的类路径下载“Hadoop免费”二进制文件并使用任何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.3使用Scala 2.12。您需要使用兼容的Scala版本(2.12.x)。
请注意,自Spark 2.2.0起,对2.6.5之前的Java 7,Python 2.6和旧Hadoop版本的支持已被删除。自2.3.0起,对Scala 2.10的支持被删除。自Spark 2.4.1起,对Scala 2.11的支持已被弃用,将在Spark 3.0中删除。
2.3.运行示例和Shell
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
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
2.4.在群集上启动
Spark 群集模式概述说明了在群集上运行的关键概念。Spark既可以自己运行,也可以通过几个现有的集群管理器运行。它目前提供了几种部署选项:
- 独立部署模式:在专用群集上部署Spark的最简单方法
- Apache Mesos
- Hadoop YARN
- Kubernetes
2.5.相关文档
编程指南:
- 快速入门:Spark API的快速入门; 从这里开始!
- RDD编程指南:Spark基础知识概述 - RDD(核心但旧API),累加器和广播变量
- Spark SQL,Datasets和DataFrames:使用关系查询处理结构化数据(比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项目
外部资源: