• 转 使用阿里云的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
  • 相关阅读:
    Redis常见数据类型二:Hash
    Redis常见数据类型一:String
    了解Docker
    微信小程序倒计时秒杀
    笛卡尔积求二维数组所有组合
    git好网站网址搜集
    npm i 报错Can't find Python executable "python2.7", you can set the PYTHON env variable
    css_注意小事项总结_随时更新
    echarts使用时报错cannot read property 'querycomponents' of undefined解决方案
    echarts中获取各个省份地图的链接
  • 原文地址:https://www.cnblogs.com/kxgdby/p/7956727.html
Copyright © 2020-2023  润新知