原文地址 :http://spark.apache.org/docs/latest/
水平有限,欢迎提出任何建议,一起学spark!
Apache spark是一个快速通用的集群计算系统。它为多种语言提供API,包括Java, Scala, Python和R,及优化了的图像处理引擎。它拥有一系列高级工具,如针对SQL语言和结构化数据处理的spark SQL,针对机器学习的MLlib,针对图像处理的GraphX,以及处理流计算的Spark Streaming
安全性
在spark中安全保护默认关闭,即在默认状态下易受到攻击。请在下载和使用前查看Spark Security。
下载
从项目网站的downloads page页即可直接获取Spark。本文档适用于spark 2.4.3 。Spark要依赖Hadoop用在HDFS和YARN的客户端lib库,所以下载文件里含有主流版本的Hadoop。用户也可以下载不含hadoop的Spark,然后加入classpath指向任何自行安装的Hadoop版本。Scala和Java用户可以用Maven来管理Spark,Python用户未来将可以从PyPI库中安装Spark。
也可访问Building Spark安装。
Spark可以用在Windows和UNIX(如Linux,MacOS)系统中,需要把java装在系统路径下,或者JAVA_HOME环境变量指向安装包路径。
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对Java 7、Python 2.6和Hadoop 2.6.5以下版本的支持止于2.2.0,对于Scala 2.10的支持止于2.3.0,Scala 2.11将在Spark 2.4.1被弃用(deprecated)并将在Spark 3.0.版本中移除(remove)。
示例
Spark有很多示例代码,Scala, Java, Python和R的示例在examples/src/main
路径下。如要跑Java或Scala示例程序,在顶层目录中执行bin/run-example <class> [params]
(此项援引通用spark-submit脚本)。 例如,
./bin/run-example SparkPi 10
你也可以交互式地用Scala shell,更好地了解框架
./bin/spark-shell --master local[2]
--master
指令可用来指定Spark集群地址,local
表示单线程,local[N]
表示N线程,开始可先使用local
测试。在shell里使用--help
指令可查看所有相关参数。
Spark同时提供Python API。交互式地用Python跑Spark,用bin/pyspark
:
./bin/pyspark --master local[2]
提交Pyspark任务的示例如下,
./bin/spark-submit examples/src/main/python/pi.py 10
实验性的R API自Spark 1.4开始(只在DataFrames APIs里有) 。用bin/sparkR
交互式地用R跑Spark:
./bin/sparkR --master local[2]
提交sparkR任务的示例如下,
./bin/spark-submit examples/src/main/r/dataframe.R