Spark Overview
下面的内容直接翻译自http://spark.apache.org/docs/latest/index.html
会有少量自己的扩展补充,当然理解或翻译上的问题,有错请指正,下面正式开始。
SparkOverview
ApacheSpark是一个快速通用的集群计算系统。它提供了对Java、Scala、Python、R的高级API支持,一个支持一般执行图的优化引擎。同时它还支持许多高级工具,包括SparkSQL(sql&结构化数据处理),MLlib(机械学习),GraphX(图运算)和sparkstreaming
下载及安装
我们可以从Spark项目网站的下载页面(http://spark.apache.org/downloads.html)得到spark。本系列文档中的内容都是基于Spark1.5.2。Spark使用了Hadoopclient库来支持HDFS和YARN。在下载包中,预置了一些常用版本的Hadoop。我们也可以先下载任意版本的hadoop,然后通过配置SparkClassPathhttp://spark.apache.org/docs/latest/hadoop-provided.html让Spark运行在任意版本的Hadoop上。
当然如果你喜欢自己通过源码自己buildSpark,请参考http://spark.apache.org/docs/latest/building-spark.html
Spark能够运行在Windows和Unix(linux,Macos都行)环境下。在一台机器上本地运行也非常简单,只要安装了JAVA,并且正确设置了PATH和JAVA_PATH。
Spark需要运行在Java7+,Python2.6+,R3.1+。因为Spark1.5.2用了Scala2.10API,我们需要用2.10.x的Scala。
Examples
Spark在examples/src/main目录下提供了Scala,Java,Python和R的一些例子。
要运行java或Scala程序,可以在Spark目录下执行bin/run-example<class>[params]。(然后,它调用了更通用的spark-submit来启动应用)
例如
./bin/run-example SparkPi 10
我们也可以通过ScalaShell来运行Spark。
./bin/spark-shell --master local[2]
--master选项指定了分布式集群的masterURL,或者local表示本地单线程运行,local[N]代表本地运行使用N个线程。在本地测试我们只能使用local。通过运行Sparkshell的--help选项,能够得到所有的选项列表。
Spark也提供了PythonAPI。可以通过bin/pyspark来运行支持Python的Spark交互程序。
./bin/pyspark --master local[2]。同样Spark也提供了基于Python的例子。
./bin/spark-submit examples/src/main/python/pi.py 10
当然还有R
./bin/sparkR --master local[2]
./bin/spark-submit examples/src/main/r/dataframe.R