说句实话,这次安装spark真是个非常费劲的过程,spark好像确实都需要自己编译,用自己编译好的版本安转,对于一个菜鸟初学者,抱着求职的欲望,却被天朝的墙挡住,就是一个悲剧,这里我转载了一篇别人写好的,编译过程的帖子,我也是按照这个过程做的编译。
但我提供一下了链接供你下载使用,希望能给你提供一定的帮助!
1、spark-1.2.0的源码包
2、scala-2.10.4的安装包
3、我用来编译的对应的hadoop-2.4.1的安装包和hadoop的2.2.0的hadoop包
4、我编译的过程中生成的maven的repository文件目录打成的压缩包
5、maven的安装包
6、最重要的还有打包好的spark-1.2.0-bin-2.2.0.tgz和spark-1.2.0-bin-2.4.1.tgz,这两个安装包
(如有什么资料不全,还希望各位积极讨要,我尽量给大家补全)
所有文件都在这个文件夹下
http://pan.baidu.com/s/1eQy8E5c
----------------------------------------------------------------------------------------
Spark1.1.0的源码编译和部署包生成,其本质只有两种:Maven和SBT,只不过针对不同场景而已:
- Maven编译
- SBT编译
- 部署包生成(内嵌Maven编译),适用于维护人员
编译的目的是生成指定环境下运行Spark本身或Spark Application的JAR包。缺省编译所支持的hadoop环境是hadoop1.0.4。Spark1.1.0的编译对几种编译方法(Maven、SBT、make-distribution.sh)进行了配置项的统一,都可以使用Maven的profile配置项;另外,对于需要额外版权的集成组件也提供了Maven配置项,如spark-ganglia-lgpl、kinesis-asl,方便了用户的编译。在本例中,笔者使用的环境是hadoop2.2.0,支持hive,并和ganglia、kinesis-asl集成。
1:获取Spark1.1.0 源码
官网下载地址http://spark.apache.org/downloads.html
2:SBT编译
将源代码复制到指定目录,然后进入该目录,运行:
sbt/sbt assembly -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive
3:Maven编译
事先安装好maven3.04或maven3.05,并设置要环境变量MAVEN_HOME,将$MAVEN_HOME/bin加入PATH变量。然后将源代码复制到指定目录,然后进入该目录,先设置Maven参数:
- export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
再运行:
- mvn -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive -DskipTests clean package
5:生成spark部署包
编译完源代码后,虽然直接用编译后的目录再加以配置就可以运行spark,但是这时目录很庞大,有800M左右多吧,部署起来很不方便,所以需要生成部署包。
spark1.1.0源码根目录下带有一个脚本文件make-distribution.sh可以生成部署包,其用法和spark1.0.0有了较大变动,开始支持MAVEN的配置参数,用法如下:
- ./make-distribution.sh [--name] [--tgz] [--with-tachyon] <maven build options>
- --with-tachyon:是否支持内存文件系统Tachyon,不加此参数时不支持tachyon。
- --tgz:在根目录下生成 spark-$VERSION-bin.tgz,不加此参数时不生成tgz文件,只生成/dist目录。
- --name NAME:和--tgz结合可以生成spark-$VERSION-bin-$NAME.tgz的部署包,不加此参数时NAME为hadoop的版本号。
如果要生成spark支持yarn、hadoop2.2.0、hive的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Phive
如果要生成spark支持yarn、hadoop2.2.0、ganglia、hive的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
- ./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Phive