spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法

一、 环境准备

  • 运行环境需要安装jdk,并配置环境变量,本次使用的是jdk1.8;
  • 使用到的开发工具是idea,并且安装scala和antlr插件,如果没有搜索到antlr插件,需要从网上下载一个插件包,导入到idea中,插件安装完成之后需要重启idea;
  • 需要安装maven,并修改配置文件,主要修改本地仓库地址和国内镜像源;
antlr4插件地址 https://plugins.jetbrains.com/plugin/7358-antlr-v4/versions

spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

二、环境搭建
  • 下载源码,下载地址 https://github.com/apache/spark
  • 直接使用idea的git-clone功能下载源码,并切换到稳定的branch-3.2分支
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

  • 修改idea里的maven配置,jdk配置,配置的地址都是在上一步中安装好的地址;
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

  • maven配置完成后会开始下载依赖,依赖下载完成之后,进行编译,网不好的需要等一段时间。
  • 测试:编译完成之后,找到SQLQuerySuite这个类,里面会有很多测试方法,找其中一个运行,没有报错则运行成功。
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

三、报错及解决办法
  • 编译过程中报错
    1.There is insufficient memory for the java runtime environment to continue
    2.控制台中文乱码
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

  • 问题1解决办法: 表示java程序的运行内存不足,调大idea的运行内存,比如修改为2048M;同时要释放部分系统的内存;
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

  • 问题二解决办法: 修改idea文件编码配置
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

  • 3.编译时报错object SqlBaseParser is not a member of package org.apache.spark.sql.catalyst.parser
  • 解决办法: 是因为没有下载到antlr相关的包,尝试多次刷新maven依赖进行下载,以及多次编译,最好是能通过进行下载
spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

  • 4.在运行测试类方法的过程中,报错could not find spark-version-info.properties
  • 解决办法:需要重新编译spark-core 在Spark的源码目录下 ,打开git bash,执行以下命令:
./build/spark-build-info ./core/target/scala-2.12/classes/ 3.3.0-SNAPSHOT

【spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法】spark|Spark源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法
文章图片

    推荐阅读