Spark Overview
Apache Spark是一个快速的、通用的分布式计算系统。提供了高层次的客户端API支持Java、Scala、Python以及R语言,并且提供了优秀的计算引擎。它还提供了一系列高级别的工具包括Spark SQL通过SQL处理结构化数据,MLlib机器学习,GraphX图像处理,以及Spark Streaming流计算。
Downloading
可以从http://spark.apache.org/downloads.html下载最新版本的Spark 2.0.0。Spark依赖Hadoop的客户端lib库,所以提供了一些包括主流Hadoop版本的tar包下载,也可以选择单独下载Hadoop然后启动Spark时配置classpath指向到用户自己下载的Hadoop。
Spark由JVM语言Scala编译,可以运行在Windows以及UNIX系统(例如Linux、Mac OS)。
Running the Examples and Shell
Spark解压下载的tar包之后在examples/src/main目录中提供了包含Scala、Java、Python以及R语言的例子程序,使用bin/run-example <class> [params]执行,例如
./bin/run-example SparkPi 10
也可以通过交互式shell运行,可以更好的了解Spark
./bin/spark-shell --master local[2]
这个—master参数用来指定Spark集群地址,可以使用local以本地方式运行,local[N]代表开启N个线程,local仅适合用来测试使用,使用—help参数查看完整的选项。
Spark提供了Python API,可以通过bin/pyspark运行
./bin/pyspark --master local[2]
通过如下命令运行Python的例子:
./bin/spark-submit examples/src/main/python/pi.py 10
Spark从1.4版本也提供了实验性的R语言API,使用bin/sparkR:
./bin/sparkR --master local[2]
通过如下命令运行R的例子:
./bin/spark-submit examples/src/main/r/dataframe.R
Launching on a Cluster
Spark提供了3种集群部署方式:
1. Standalone Deploy Mode
2. Apache Mesos
3. Hadoop YARN