一、 环境准备
- 运行环境需要安装jdk,并配置环境变量,本次使用的是jdk1.8;
- 使用到的开发工具是idea,并且安装scala和antlr插件,如果没有搜索到antlr插件,需要从网上下载一个插件包,导入到idea中,插件安装完成之后需要重启idea;
- 需要安装maven,并修改配置文件,主要修改本地仓库地址和国内镜像源;
antlr4插件地址
https://plugins.jetbrains.com/plugin/7358-antlr-v4/versions
文章图片
二、环境搭建
- 下载源码,下载地址 https://github.com/apache/spark
- 直接使用idea的git-clone功能下载源码,并切换到稳定的branch-3.2分支
文章图片
文章图片
- 修改idea里的maven配置,jdk配置,配置的地址都是在上一步中安装好的地址;
文章图片
文章图片
- maven配置完成后会开始下载依赖,依赖下载完成之后,进行编译,网不好的需要等一段时间。
- 测试:编译完成之后,找到SQLQuerySuite这个类,里面会有很多测试方法,找其中一个运行,没有报错则运行成功。
文章图片
文章图片
三、报错及解决办法
- 编译过程中报错
1.There is insufficient memory for the java runtime environment to continue
2.控制台中文乱码
文章图片
- 问题1解决办法: 表示java程序的运行内存不足,调大idea的运行内存,比如修改为2048M;同时要释放部分系统的内存;
文章图片
- 问题二解决办法: 修改idea文件编码配置
文章图片
- 3.编译时报错object SqlBaseParser is not a member of package org.apache.spark.sql.catalyst.parser
- 解决办法: 是因为没有下载到antlr相关的包,尝试多次刷新maven依赖进行下载,以及多次编译,最好是能通过进行下载
文章图片
- 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源码下载及编译步骤,以及运行过程中出现的一些报错的解决办法】
文章图片
推荐阅读
- 笔记|JavaWeb项目【实现基础博客系统】
- springboot|Springboot+Vue+Element实现的CRM管理系统
- java|多级分类、菜单等的数据库设计(一张表),以及mybatis-plus的多级分类查询(一条SQL语句)
- bug|太极限了,JDK的这个BUG都能被我踩到
- maven|Maven---彻底理解聚合项目和父子模块的关系
- JavaEE|【Spring Boot】SpringBoot 配置文件详解
- 面试·求职系列|【面试篇】手写单例模式及原理剖析
- javaProgramming|乘积小于 K 的子数组 leetcode java dailywork
- maven|maven整合远程jar包和本地jar包打包部署