【问题标题】:How to build and run Scala Spark locally如何在本地构建和运行 Scala Spark
【发布时间】:2014-07-14 12:03:17
【问题描述】:

我正在尝试在本地构建 Apache Spark。这样做的原因是为了调试像 reduce 这样的 Spark 方法。特别是我对 Spark 如何在后台实现和分发 Map Reduce 感兴趣,因为我遇到了性能问题,我认为从源代码运行这些任务是找出问题所在的最佳方法。

所以我从 Spark repo 克隆了最新的:

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

Spark 似乎是一个 Maven 项目,所以当我在 Eclipse 中创建它时,结构如下:

一些顶级文件夹也有 pom 文件:

那么我应该只构建这些子项目之一吗?这些是针对本地代码库运行 Spark 的正确步骤吗?

【问题讨论】:

  • 要查看 Spark 内部结构,您只需要 core。这应该会让你到达那里:syndeticlogic.net/?p=311 BTW,SBT 更好地让 Spark 启动并运行。我还建议您使用 Intellij 而不是 Eclipse。

标签: eclipse scala maven apache-spark


【解决方案1】:

在本地构建 Spark,简短的回答:

git clone git@github.com:apache/spark.git
cd spark
sbt/sbt compile

详细了解您的问题,您实际上要问的是“如何在 Eclipse 中调试 Spark 应用程序”。 要在 Eclipse 中进行调试,您实际上并不需要在 Eclipse 中构建 Spark。您所需要的只是创建一个具有 Spark lib 依赖项的作业并询问 Maven 的“下载源”。这样您就可以使用 Eclipse 调试器来单步执行代码。

然后,在创建 Spark Context 时,使用 sparkConfig.local[1] 作为 master,如:

val conf = new SparkConf()
      .setMaster("local[1]")
      .setAppName("SparkDebugExample")

以便所有 Spark 交互都在一个线程中以本地模式执行,因此对您的调试器可见。

如果您正在调查性能问题,请记住 Spark 是一个分布式系统,其中网络起着重要作用。在本地调试系统只会给你部分答案。需要监控实际集群中的作业,才能全面了解作业的性能特征。

【讨论】:

  • 您能否详细说明“您所需要的只是创建一个具有其 Spark lib 依赖项的作业并询问 Maven '下载源'”是什么意思。目前我有一个简单的 spark 应用程序,它类似于 Apache Spark 网站上的应用程序。我想在 Eclipse 中运行它,并逐步执行代码,这样我就可以进入 spark 的实际核心实现,了解某些东西在 Spark 中是如何工作的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 2022-01-20
相关资源
最近更新 更多