编译spark-1.0.1源代码

截至到当前为止,spark最新版本为1.0.1。本文测试环境的操作系统是CentOS 7.0 x86_64,jdk为1.7.0_51。编译spark和编译hadoop类似,是一个很简单的过程。

1. 下载spark源代码

2. 安装maven或sbt

(1). java-devel是必须要安装的包

(2). 安装maven

检查maven


(3). sbt
如果要使用sbt来构建源代码,需要访问sbt官网来下载sbt的包。

(4). java env
默认的系统是没设置JAVA_HOME等环境变量,所以要在/etc/profile中加入

3. spark编译配置

解压源代码后,可以找到maven的构建配置文件pom.xml和sbt的配置文件spark-1.0.1/project/SparkBuild.scala
这样在源代码根目录可以使用下面的命令来直接编译:

或使用sbt

为了避免上面编译中出现的问题,spark给出了一个shell脚本make-distribution.sh,里面预设了许多可能的环境变量,并在边以后打成一个tar包。
这个命令的常见参数如下:
–hadoop 2.2.0 如果不设置这个变量,hadoop版本为 1.0.4 。
–with-yarn 支持 HadoopYARN ,默认不支持 。
–with-hive 在Spark SQL中支持hive ,默认不支持。
–tgz 如果设置这个参数,则在根目录下生成spark-1.0.1-bin-hadoop-2.2.0.tgz 。如果不加此参数时,则只生
成 /dist 目录而不进行打包。
查看make-distribution.sh文件可以看到BUILD_COMMAND=’mvn clean package’,可以看出这个脚本使用maven来作为编译构建工具
使用make-distribution.sh来进行编译:

查看生成的bin包
ll *.tgz
-rw-r–r– 1 root root 187276854 Jul 12 18:21 spark-1.0.1-bin-2.2.0.tgz
以及spark-assembly jar包,这个包用于支持hadoop、hive应用的jar包,要将这个包放到CLASSPATH目录下,并设置SPARK_JAR。此外./examples/target/spark-examples_2.10-1.0.1.jar也是经常用到的。
./assembly/target/scala-2.10/spark-assembly-1.0.1-hadoop2.2.0.jar

在/etc/profile配置环境变量

4. spark环境完成

为了方便,将bin和src目录分别移动/解压到spark-1.0.1和spark-1.0.1-src下面:

^^

Posted in BigData, Linux, Spark.
  1. 我编译的时候出现这个错误能帮助解答吗?[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:attach-descriptor (attach-descriptor) on project spark-parent: Execution attach-descriptor of goal org.apache.maven.plugins:maven-site-plugin:3.3:attach-descriptor failed: Plugin org.apache.maven.plugins:maven-site-plugin:3.3 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.apache.maven.shared:maven-shared-utils:jar:0.3, org.sonatype.aether:aether-util:jar:1.7: Could not transfer artifact org.apache.maven.shared:maven-shared-utils:jar:0.3 from/to central (https://repo1.maven.org/maven2): Connect to repo1.maven.org:443 [repo1.maven.org/199.27.79.209] failed: Connection timed out -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

    • 插件少了依赖,可以下面路径找下方法。为你的环境添加必要的插件。maven我也不熟,就只能到这里了。。http://maven.apache.org/plugins/http://mvnrepository.com/artifact/org.apache.maven.plugins/maven-dependency-plugin