摘要:Spark是继Hadoop之后的新一代大数据分布式处理框架,由UC Berkeley的Matei Zaharia主导开发。我只能说是神一样的人物造就的神器,详情请猛击http://www.spark-project.org
Created 2012-05-09
Modified 2012-08-13
1 Scala安装
当前,Spark最新版本是0.5,由于我写这篇文档时,版本还是0.4,因此本文下面的所有描述基于0.4版本。
不过淘宝的达人已经尝试了0.5,并写了相关安装文档在此 http://www.linuxidc.com/Linux/2013-08/88592.htm 。
~~~~~~~~~~~~~~~以下开始我的安装文档~~~~~~~~~~~~~~
我使用的Spark的版本是0.4,只存在于github上,该版本使用的Scala版本是0.9.1.final。所以先到http://www.scala-lang.org/node/165下载scala-2.9.1.final.tar.gz。解压后放到本地 /opt 下面,在 /etc/profile 里添加
export SCALA_HOME=/opt/scala-2.9.1.final
export PATH=$SCALA_HOME/bin:$PATH
2 git安装
由于下载Spark和编译Spark需要git,因此先安装git,安装方法可以到Ubuntu软件中心直接装,也可以apt-get装。装好后需要到https://github.com 去注册一个帐号,我注册的是JerryLead,注册邮箱和密码,然后根据网站上的get-start提示生成RSA密码。
注意:如果本地之前存在rsa_id.pub,authorized_keys等,将其保存或着将原来的密码生成为dsa形式,这样git和原来的密码都不冲突。
3 Spark安装
首先下载最新的源代码
git clone git://github.com/mesos/spark.git
得到目录spark后,进入spark目录,进入conf子目录,将 spark-env.sh-template 重命名为spark-env.sh,并添加以下代码行:
export SCALA_HOME=/opt/scala-2.9.1.final
回到spark目录,开始编译,运行
$ sbt/sbt update compile
这条命令会联网下载很多jar,然后会对spark进行编译,编译完成会提示success
[success] Total time: 1228 s, completed May 9, 2012 3:42:11 PM
可以通过运行spark-shell来和spark进行交互。
也可以先运行测试用例./run <class> <params>
./run spark.examples.SparkLR local[2]
在本地启动两个线程运行线性回归。
./run spark.examples.SparkPi local
在本地启动运行Pi估计器。
更多的例子在examples/src/main/scala里面
3 Spark导出
在使用Spark之前,先将编译好的classes导出为jar比较好,可以
$ sbt/sbt assembly
将Spark及其依赖包导出为jar,放在
core/target/spark-core-assembly-0.4-SNAPSHOT.jar
可以将该jar添加到CLASSPATH里,开发Spark应用了。
一般在开发Spark应用时需要导入Spark一些类和一些隐式的转换,需要再程序开头加入
import spark.SparkContext
import SparkContext._
4 使用Spark交互模式
1. 运行./spark-shell.sh
2. scala> val data = Array(1, 2, 3, 4, 5) //产生data
data: Array[Int] = Array(1, 2, 3, 4, 5)
3. scala> val distData = sc.parallelize(data) //将data处理成RDD
distData: spark.RDD[Int] = spark.ParallelCollection@7a0ec850 (显示出的类型为RDD)
4. scala> distData.reduce(_+_) //在RDD上进行运算,对data里面元素进行加和
12/05/10 09:36:20 INFO spark.SparkContext: Starting job...
5. 最后运行得到
12/05/10 09:36:20 INFO spark.SparkContext: Job finished in 0.076729174 s
res2: Int = 15
接下来请看第2页精彩内容: http://www.linuxidc.com/Linux/2013-08/88596p2.htm
推荐阅读:
Spark 0.7.0 发布,开源集群计算环境 http://www.linuxidc.com/Linux/2013-03/81990.htm
Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm
Spark,一种快速数据分析替代方案 http://www.linuxidc.com/Linux/2013-08/88590.htm