標籤:http java 使用 strong 檔案 linux
歡迎轉載,轉載請註明出處,徽滬一郎。
概要
本來源碼編譯沒有什麼可說的,對於java項目來說,只要會點maven或ant的簡單命令,依葫蘆畫瓢,一下子就ok了。但到了Spark上面,事情似乎不這麼簡單,按照spark officical document上的來做,總會出現這樣或那樣的編譯錯誤,讓人懊惱不已。
今天閑來無事,又重試了一把,居然o了,做個記錄,以備後用。
準備
我的編譯機器上安裝的Linux是archlinux,並安裝後如下軟體
- scala 2.11
- maven
- 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