Apache Spark源码走读之9 -- Spark源码编译

欢迎转载,转载请注明出处,徽沪一郎。java

概要

原本源码编译没有什么可说的,对于java项目来讲,只要会点maven或ant的简单命令,依葫芦画瓢,一会儿就ok了。但到了Spark上面,事情彷佛不这么简单,按照spark officical document上的来作,总会出现这样或那样的编译错误,让人懊恼不已。linux

今天闲来无事,又重试了一把,竟然o了,作个记录,以备后用。git

准备

个人编译机器上安装的Linux是archlinux,并安装后以下软件github

  1. scala 2.11
  2. maven
  3. git

下载源码

第一步固然是将github上的源码下载下来apache

git clone https://github.com/apache/spark.git

 源码编译

不是直接用maven也不是直接用sbt,而是使用spark中自带的编译脚本make-distribution.shbash

export SCALA_HOME=/usr/share/scala
cd $SPARK_HOME
./make-distribution.sh

若是一切顺利,会在$SPARK_HOME/assembly/target/scala-2.10目录下生成目标文件,好比dom

assembly/target/scala-2.10/spark-assembly-1.0.0-SNAPSHOT-hadoop1.0.4.jar

使用sbt编译

以前使用sbt编译一直会失败的主要缘由就在于有些jar文件由于GFW的缘由而访问不了。解决之道固然是添加代理才行。maven

代理的添加有下面几种方式,具体哪一种好用,一一尝试吧,对于最新的spark。使用以下指令便可。oop

export http_proxy=http://proxy-server:port

方法二,设置JAVA_OPTS测试

JAVA_OPTS="-Dhttp.proxyServer=proxy-server -Dhttp.proxyPort=portNumber"

运行测试用例

既然可以顺利的编译出jar文件,那么确定也改动两行代码来试试效果,若是知道本身的发动生效没有呢,运行测试用例是最好的办法了。

假设已经修改了$SPARK_HOME/core下的某些源码,从新编译的话,使用以下指令

export SCALA_HOME=/usr/share/scala
mvn package -DskipTests

假设当前在$SPARK_HOME/core目录下,想要运行一下RandomSamplerSuite这个测试用例集合,使用如下指令便可。

export SPARK_LOCAL_IP=127.0.0.1
export SPARK_MASTER_IP=127.0.0.1
mvn -Dsuites=org.apache.spark.util.random.RandomSamplerSuite test
相关文章
相关标签/搜索