【Spark】1.如何像Boss一样 debug Spark的源代码

这篇博客介绍了如何在本地设置Spark并使用IntelliJ进行源代码调试。首先,需要安装Java 11、Maven、Scala和Python,并下载Hadoop和Spark源代码。然后,通过配置IntelliJ的Java编译器设置,并创建应用配置来调试JavaSparkPi示例。文章提供了详细的步骤和截图,帮助读者成功设置Spark并进行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何像大佬一样 debug Spark 的源代码

今天工作完成了,利用时间学习spark,开启学习的第一步,debug代码。在这篇文章中,我将解释如何设置我的调试器以在 Spark 代码库中命中断点,以便能够调试 Spark Scala、Java 和 Python 代码。

准备

在本地设置 Spark 涉及下载 Hadoop 二进制文件和 Spark 源代码。我将在本教程中使用 IntelliJ,但理论上,任何允许您运行和调试基于 JVM 的语言的 IDE 都应该这样做。这是在 Macbook Pro 上设置的

你需要什么

  • 您需要安装 Java 11。任何 LTS 或 8 之后的版本都应该这样做。

  • 已安装 Maven 3.6.3 或更高版本。

  • 已安装 Scala 2.12.10 或更高版本。

  • 已安装 Python 3。

  • 至少 8 GB 的 RAM。

  • Jetbrains IntelliJ IDE。我使用的是 Ultimate 版本,但这在 Community 版本上应该可以正常工作。

设置

我们将下载并设置 Hadoop 和 Spark。之后我们将配置 IntelliJ。最耗时的阶段将是 Spark 编译。

设置 Hadoop

我们需要先安装 Hadoop 二进制文件。Hadoop 3.2.2 是本教程中将使用的二进制版本。只要您设置的 Hadoop 版本与您使用的 Spark 版本兼容,我们应该没问题。该过程在版本中没有太大变化。(https://hadoop.apache.org/releases.html获取 Hadoop 二进制文件)

有一个Downloads存放所有下载文件的文件夹,还是将 Hadoop 文件解压缩到其他位置吧。

完成后,添加一个条目在.profile中以便HADOOP_HOME在启动时声明。在终端执行

echo 'export HADOOP_HOME="/Users/shuaige/Downloads/hadoop-3.2.2/bin"' >> ~/.profile

要检查环境变量指向正确的位置,如果在 Mac 或 Linux 变体上,请在命令行中键入以下内容。

env | grep HADOOP_HOME

设置Spark

我们将 git 克隆 Apache Spark 存储库并在本地编译它。克隆 Spark 存储库。

git clone https://github.com/apache/spark

切换到目录并使用以下命令从源代码构建 Spark。在没有sudo的情况下运行 maven build 命令,这样 IntelliJ 在尝试构建或读取目标文件夹时不会给您带来问题。挂在那里,编译可能需要一段时间

cd spark 
mvn -DskipTests clean package

构建完成后,您可以通过运行 bin 文件夹中的一个二进制文件来测试 Spark 是否已正确构建。

bin/spark-shell

您应该会看到类似于下面的屏幕截图的内容。这就完成了。
在这里插入图片描述

设置 IntelliJ

启动IntelliJ,打开最近编译的Spark目录。索引可能需要一段时间,但是您不会等到索引完成后再继续其余的步骤。

首先我们进入IntelliJ > Preferences > Build, Execution, Deployment > Compiler > Java Compiler 菜单,像截图一样设置。
在这里插入图片描述

索引应该已经完成了。如果没有,我们别无选择,只能等待。休息一下。

Java 示例

我们会设置JavaSparkPi的例子让它是可调试的。对于任何java示例,您都可以遵循这个过程。

进入“Run > Edit Configurations”。

在下面的页面上,单击+按钮并选择Application。填写如下图所示的配置。
在这里插入图片描述
对于Program arguments,复制-粘贴下面的内容,jar包具体看版本。

--class

org.apache.spark.examples.JavaSparkPi

--master

local

examples/target/original-spark-examples_2.12-3.0.0-SNAPSHOT.jar

显示以下即成功了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书生伯言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值