zoukankan      html  css  js  c++  java
  • 转 使用阿里云的Maven仓库加速Spark编译过程

     
    前言

    在国内编译Spark项目需要从Maven源下载很多依赖包,官方源在国内大环境下的下载速度大家都懂得,那个煎熬啊,简直是浪费生命。

    如果你的下载速度很快,你现在就可以无视这篇文章了。

    阿里云给国内开发者提供了一个非常的良心的服务:提供了一个国内Maven镜像,可以让我们拜托这种煎熬。

    地址信息

    阿里云的Maven也是基于nexus构建。

    地址: http://maven.aliyun.com/

    仓库地址: http://maven.aliyun.com/nexus/content/groups/public/

    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("http://maven.aliyun.com/nexus/content/groups/public/")),
    9. Resolver.mavenLocal,
    10. Resolver.file("local", file(Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns)
    11. ),
    用 Resolver.url("aliyun", url("http://maven.aliyun.com/nexus/content/groups/public/"))替换掉 DefaultMavenRepository 即可。 
    然后参照官方的方法用sbt编译Spark,你会发现,新下载的jar包会从阿里云获取,类似这样: 

    点击(此处)折叠或打开

    1. ...
    2. [info] [SUCCESSFUL ] org.apache.parquet#parquet-encoding;1.8.2!parquet-encoding.jar (417ms)
    3. [info] downloading [url]http://maven.aliyun.com/nexus/content/groups/public/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]http://maven.aliyun.com/nexus/content/groups/public/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]http://maven.aliyun.com/nexus/content/groups/public/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]http://maven.aliyun.com/nexus/content/groups/public/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]https://repo1.maven.org/maven2</url>[/url]
    8. + <!--<url>[url]https://repo1.maven.org/maven2</url>-->[/url]
    9. + <url>[url]http://maven.aliyun.com/nexus/content/groups/public/</url>[/url]
    10. <releases>
    11. <enabled>true</enabled>
    12. </releases>

    配置下面还有个Maven的插件,也参考这个修改掉即可。




    转: http://www.kekeyun.com/thread-3385-1-1.html
  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/kxgdby/p/7956727.html
Copyright © 2011-2022 走看看