Spark源码01【搭建Spark源码调试环境】
搭建Spark源码调试环境
1.调试环境
可以根据官网的Spark 3.2的pom依赖查看各组件的版本
Mac + Jdk1.8 + Maven 3.63 + scala 2.12.15 + antlr + Spark 分支 3.2
1.1 java环境
1)编辑vi ~/.zshrc
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
2)使文件生效source ~/.zshrc
3)验证java -version
1.2Scala环境
1)编辑vi ~/.zshrc
export SCALA_HOME=/Users/didi/mine/software/scala/scala-2.12.15
export PATH=$PATH:$SCALA_HOME/bin
2)使文件生效source ~/.zshrc
1.3 Maven环境
使用的安装包为apache-maven-3.6.3-bin.zip
解压unzip apache-maven-3.6.3-bin.zip -d ./
- 编辑
vi ~/.zshrc
export M2_HOME=/Users/didi/mine/software/maven/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
-
验证
mvn -v
-
setting.xml 配置阿里云
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>
配置本地仓库地址
<localRepository>/Users/didi/mine/software/maven/repository</localRepository>
-
配置idea的maven配置
1.2下载spark源码
git clone https://github.com/apache/spark
#切换至spark3.2分支
git branch -a #查看远程分支
git checkout remotes/origin/branch-3.2 #切换至saprk3.2
1.3编译源码
#所有依赖jar都下载完成
cd /Users/didi/mine/software/idea/code/spark/spark
mvn clean package -Phive -Phive-thriftserver -Pyarn -DskipTests
编译报错
- Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:testCompile
https://blog.csdn.net/wangchaoqi1985/article/details/105920061
Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:testCompile问题解决
2.pom文件飘红
在idea怎么都下载不下来maven plugin插件
,最后通过mvn clean package -Phive -Phive-thriftserver -Pyarn -DskipTests命令打包过程可以下载
1.4 源码导入和任务运行
1.4.1导入源码到Intellij IDEA
现在IDEA对scala支持已经比较完善,导入Spark工程非常简单:
Menu -> File -> Open -> {spark dir}/pom.xml -> Open as Project
1.4.2 运行实例代码
导入工程后,介绍一下如何运行Spark项目自带的实例代码,在{spark dir}/examples/
目录下,这里以LogQuery
为例:
command + o -> 输入LogQuery打开
1) 配置运行参数
Menu -> Run -> Edit Configurations -> 选择 + -> Application
VM options: -Dspark.master=local
代表使用本地模式运行Spark代码,也可以选择其他模式。 保存配置后,可以看到LogQuery
在运行选项里了
2) 运行结果
3) 运行报错
Error: A JNI error has occurred, please check your installation and try again Exception in thread “main”
原因
1.5 安装antlr 插件
1.cmd + o
搜索SqlBase.g4文件,会提示你安装ANTLR v4
插件, 重启idea
2.配置ANTLR V4
插件
参考: