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环境

下载:https://www.scala-lang.org/download/all.html

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环境

  1. 下载maven 3.6.3 :https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/

使用的安装包为apache-maven-3.6.3-bin.zip

解压unzip apache-maven-3.6.3-bin.zip -d ./

  1. 编辑vi ~/.zshrc
export M2_HOME=/Users/didi/mine/software/maven/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
  1. 验证 mvn -v

  2. 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>
    
  3. 配置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

image-20220802202452920

编译报错

  1. 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

image-20220802203444014

1.4.2 运行实例代码

导入工程后,介绍一下如何运行Spark项目自带的实例代码,在{spark dir}/examples/目录下,这里以LogQuery为例:

command + o -> 输入LogQuery打开

image-20220802203649720

1) 配置运行参数

Menu -> Run -> Edit Configurations -> 选择 + -> Application

image-20220802210454924

VM options: -Dspark.master=local 代表使用本地模式运行Spark代码,也可以选择其他模式。 保存配置后,可以看到LogQuery在运行选项里了

image-20220802203911246

2) 运行结果

image-20220803100514967

3) 运行报错
Error: A JNI error has occurred, please check your installation and try again Exception in thread “main”

原因

image-20220802210632292

1.5 安装antlr 插件

1.cmd + o 搜索SqlBase.g4文件,会提示你安装ANTLR v4插件, 重启idea

2.配置ANTLR V4插件

image-20220803144931420

image-20220803145156301

参考:

搭建Spark源码研读和代码调试的开发环境

sparksql源码共读

你阅读源码的心态是什么?有哪些经验分享?

在idea中maven项目 jar包下载不下来或不完整解决办法

posted @ 2022-08-03 15:10  来自遥远的水星  阅读(717)  评论(0编辑  收藏  举报