Apache Spark源碼走讀之9 -- Spark源碼編譯

來源:互聯網
上載者:User

標籤:http   java   使用   strong   檔案   linux   

歡迎轉載,轉載請註明出處,徽滬一郎。

概要

本來源碼編譯沒有什麼可說的,對於java項目來說,只要會點maven或ant的簡單命令,依葫蘆畫瓢,一下子就ok了。但到了Spark上面,事情似乎不這麼簡單,按照spark officical document上的來做,總會出現這樣或那樣的編譯錯誤,讓人懊惱不已。

今天閑來無事,又重試了一把,居然o了,做個記錄,以備後用。

準備

我的編譯機器上安裝的Linux是archlinux,並安裝後如下軟體

  1. scala 2.11
  2. maven
  3. git
下載源碼

第一步當然是將github上的源碼下載下來

git clone https://github.com/apache/spark.git
 源碼編譯

不是直接用maven也不是直接用sbt,而是使用spark中內建的編譯指令碼make-distribution.sh

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

如果一切順利,會在$SPARK_HOME/assembly/target/scala-2.10目錄下產生目標檔案,比如

assembly/target/scala-2.10/spark-assembly-1.0.0-SNAPSHOT-hadoop1.0.4.jar
使用sbt編譯

之前使用sbt編譯一直會失敗的主要原因就在於有些jar檔案因為GFW的原因而訪問不了。解決之道當然是添加代理才行。

代理的添加有下面幾種方式,具體哪種好用,一一嘗試吧,對於最新的spark。使用如下指令即可。

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/scalamvn package -DskipTests

假設當前在$SPARK_HOME/core目錄下,想要運行一下RandomSamplerSuite這個測試案例集合,使用以下指令即可。

export SPARK_LOCAL_IP=127.0.0.1export SPARK_MASTER_IP=127.0.0.1mvn -Dsuites=org.apache.spark.util.random.RandomSamplerSuite test

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.