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
相關文章
相關標籤/搜索