使用阿里云的Maven仓库加速Spark编译过程

简介: 前言 在国内编译Spark项目需要从Maven源下载很多依赖包,官方源在国内大环境下的下载速度大家都懂得,那个煎熬啊,简直是浪费生命。 如果你的下载速度很快,你现在就可以无视这篇文章了。

前言

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

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

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

地址信息

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

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


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. central
  5. Maven Repository
  6. -      [url]https://repo1.maven.org/maven2[/url]
  7. +      [/url]
  8. +      [url]http://maven.aliyun.com/nexus/content/groups/public/[/url]
  9. true

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




目录
相关文章
|
1月前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
155 15
|
23天前
|
存储 分布式计算 物联网
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
美的楼宇科技基于阿里云 EMR Serverless Spark 建设 IoT 数据平台,实现了数据与 AI 技术的有效融合,解决了美的楼宇科技设备数据量庞大且持续增长、数据半结构化、数据价值缺乏深度挖掘的痛点问题。并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台,最终实现不同场景下整体性能提升50%以上,同时综合成本下降30%。
|
6月前
|
Java Maven
Maven编译报错
Maven编译报错
98 1
|
13天前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
3月前
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
3601 4
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
4月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
5月前
|
Java 编译器 测试技术
全面理解Maven Compiler Plugin-Maven编译插件
【10月更文挑战第16天】
884 1
|
6月前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
250 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
5月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
1167 3
|
4月前
|
Java 测试技术 项目管理
maven编译本地代码的命令是什么?
【10月更文挑战第26天】maven编译本地代码的命令是什么?
191 0

推荐镜像

更多