spark 3.0.0源码编译以及IDEA本地调试运行

1.下载源码

2. 修改pom.xml

  • 把maven.version修改为3.6.3(同本地maven版本一致)

  • 把scala.version修改为2.12.11(同本地scala版本一致)

  • 把maven源修改为阿里云加快文件下载速度

      <repositories>
        <repository>
          <id>gcs-maven-central-mirror</id>
          <!--
            Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
            See https://storage-download.googleapis.com/maven-central/index.html
          -->
          <name>GCS Maven Central mirror</name>
          <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <!--
            This is used as a fallback when the first try fails.
          -->
          <id>central</id>
          <name>Maven Repository</name>
          <url>https://repo.maven.apache.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
    
    替换为
      <repositories>
        <repository>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>https://maven.aliyun.com/repository/central</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
    
    
      <pluginRepositories>
        <pluginRepository>
          <id>gcs-maven-central-mirror</id>
          <!--
            Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
            See https://storage-download.googleapis.com/maven-central/index.html
          -->
          <name>GCS Maven Central mirror</name>
          <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>central</id>
          <url>https://repo.maven.apache.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    替换为
      <pluginRepositories>
        <pluginRepository>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>https://maven.aliyun.com/repository/central</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    
    

3.编译

至此,编译结束

4.IDEA打开

用IDEA打开pom.xml,选择maven project。

以sparkPi为例添加运行config。

将assembly/target/scala/jars添加到Project Structure -- Moudles中。

5.遇到的问题

  • 找不到spark-version-info.properties

    在git bash 中执行

    build/spark-build-info /core/target/extra-resources 3.0.0
    

    然后将spark-version-info.properties复制到examples/target/scala-2.12/classes 目录下(这里具体的位置可以通过debug来找到)

  • java.lang.NoClassDefFoundError 例如:org/eclipse/jetty/server/connecter

    在pom.xml文件中找到相关配置,将scope的provided修改为compile

  • 注意在Run Configurations中,需要将Before launch 中的build减掉

posted @   憨憨的  阅读(1168)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示