欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

[Spark]如何像Boss一样debugSpark的源代码

时间:2023-06-14
如何像大佬一样 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包具体看版本。

--classorg.apache.spark.examples.JavaSparkPi--masterlocalexamples/target/original-spark-examples_2.12-3.0.0-SNAPSHOT.jar

显示以下即成功了。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。