使用阿里雲的Maven倉庫加速Spark編譯過程

hackeruncle發表於2017-02-21
前言

在國內編譯Spark專案需要從Maven源下載很多依賴包,官方源在國內大環境下的下載速度大家都懂得,那個煎熬啊,簡直是浪費生命。

如果你的下載速度很快,你現在就可以無視這篇文章了。

阿里雲給國內開發者提供了一個非常的良心的服務:提供了一個國內Maven映象,可以讓我們拜託這種煎熬。

地址資訊

阿里雲的Maven也是基於nexus構建。

地址: 

倉庫地址: 

Spark支援sbt及Maven兩種編譯方式,接下來分別介紹,如何修改構建配置,採用阿里雲的maven倉庫加速Spark編譯過程。

提速sbt構建速度

網上有資料介紹如何使用國內映象加速編譯,比如這個:http://blog.csdn.net/mmical/article/details/41925823

然,對於Spark專案而言,並卵!因為Spark單獨定義了專案的構建規則,並不會載入預設的倉庫解析配置。

我們需要修改Spark原始碼下的 project/SparkBuild.scala 這個檔案,參考我下面這個patch進行修改:

點選(此處)摺疊或開啟

  1. --- a/project/SparkBuild.scala
  2. +++ b/project/SparkBuild.scala
  3. @@ -214,7 +214,8 @@ object SparkBuild extends PomBuild {
  4. // Override SBT's default resolvers:
  5. resolvers := Seq(
  6. - DefaultMavenRepository,
  7. + //DefaultMavenRepository,
  8. + Resolver.url("aliyun", url("")),
  9. Resolver.mavenLocal,
  10. Resolver.file("local", file(Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns)
  11. ),
用 Resolver.url("aliyun", url(""))替換掉 DefaultMavenRepository 即可。 
然後參照官方的方法用sbt編譯Spark,你會發現,新下載的jar包會從阿里雲獲取,類似這樣: 

點選(此處)摺疊或開啟

  1. ...
  2. [info] [SUCCESSFUL ] org.apache.parquet#parquet-encoding;1.8.2!parquet-encoding.jar (417ms)
  3. [info] downloading [url]org/apache/parquet/parquet-format/2.3.1/parquet-format-2.3.1.jar[/url] ...
  4. [info] [SUCCESSFUL ] org.apache.parquet#parquet-format;2.3.1!parquet-format.jar (948ms)
  5. [info] downloading [url]org/apache/parquet/parquet-jackson/1.8.2/parquet-jackson-1.8.2.jar[/url] ...
  6. [info] [SUCCESSFUL ] org.apache.parquet#parquet-jackson;1.8.2!parquet-jackson.jar (1419ms)
  7. [info] downloading [url]org/apache/avro/avro/1.8.1/avro-1.8.1.jar[/url] ...
  8. [info] [SUCCESSFUL ] org.apache.avro#avro;1.8.1!avro.jar(bundle) (2448ms)
  9. [info] downloading [url]org/apache/parquet/parquet-avro/1.8.2/parquet-avro-1.8.2.jar[/url] ...
  10. ...

這個下載過程,比官方的Maven源要快很多。

PS:使用sbt編譯Spark子專案的方法,可以參考我的這篇文章:

提速Maven構建速度

Maven的就比較簡單了,是非常通用的方法,我們僅需要修改 pom.xml 檔案即可:

點選(此處)摺疊或開啟

  1. --- a/pom.xml
  2. +++ b/pom.xml
  3. @@ -228,7 +228,8 @@
  4. <id>central</id>
  5. <!-- This should be at top, it makes maven try the central repo first and then others and hence faster dep resolution -->
  6. <name>Maven Repository</name>
  7. - <url>[url][/url]
  8. + <!--<url>[url]-->[/url]
  9. + <url>[url]</url>[/url]
  10. <releases>
  11. <enabled>true</enabled>
  12. </releases>

配置下面還有個Maven的外掛,也參考這個修改掉即可。




轉:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-2134060/,如需轉載,請註明出處,否則將追究法律責任。

相關文章