文章目录
前言
- 之前看到一些源码,但是很浅,最近在思考仔细学习一下spark源码,换了新的电脑,这里记录一下环境安装的过程
- 这里有些其他的新电脑问题
一、安装idea、jdk、maven
1.1 安装开发工具idea
- 官网安装,我这里安装的是 idea 2021.3.2
- 破解,随便搜一下到处都有破解教程
1.2 安装jdk
- 官网下载
- 我下载的
jdk-8u201-macosx-x64.dmg
,这里你直接搜索,下载就行 - 不想申请账号,jdl官网账号和密码,大家复制一下账号密码下载就完事了
- 我下载的
1.3 安装maven、git
- 这个忘记记录了,网上搜一下安装就可以
- 之前记录过 Git–安装 、Maven–本地安装及整合idea
1.4 安装 antlr和scala插件
- 重启后生效
二、spark源码导入idea
- url
https://github.com/apache/spark
- 报错
unable to access 'https://github.com/apache/spark/': HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
- 原因
- 网上说是git默认使用的通信协议出现了问题,可以通过将默认通信协议修改为 http/1.1 来解决该问题
- 解决
git config --global http.version HTTP/1.1
- 后来又是各种报错
- 解决:修改缓冲区的大小、修改下载速度、关闭ssl证书校验
git config --global http.postBuffer 5242880000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
git config --global http.sslVerify "false"
- 查看
cat .gitconfig
- 拉了好几次才拉下来(卡在百分之90多失败了好几次)
三、切到branch3.2&编译
- checkout 3.2 版本
- Resolving Maven dependencies 要很久,设置下maven Importing的jvm参数
-Xms1024m -Xmx2048m
- spark源码包下开始编译
mvn clean package -Phive -Phive-thriftserver -Pyarn -DskipTests
- 编译成功~
四、运行测试类
4.1 测试 PlanParserSuite
-
运行 PlanParserSuite.scala
-
报错
object SqlBaseParser is not a member of package org.apache.spark.sql.catalyst.parser
import org.apache.spark.sql.catalyst.parser.SqlBaseParser._
- 原因
- idea不会自动下载部分catalyst相关的源文件,导致编译时不能通过。
- 解决
4.2 测试 SQLQuerySuite
- 运行 SQLQuerySuite.scala
sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala