我正在尝试在本地构建Apache Spark。原因是调试像reduce这样的Spark方法。特别是我对Spark如何实现和分发Map Reduce感兴趣,因为我遇到了性能问题,我认为从源代码运行这些任务是找出问题所在的最佳方法。
所以我克隆了Spark repo的最新消息:
git clone https://github.com/apache/spark.git
Spark似乎是一个Maven项目,所以当我在Eclipse中创建它时,结构是:
某些顶级文件夹也有pom文件:
那么我应该建立其中一个子项目吗?这些正确的步骤是针对本地代码库运行Spark吗?
答案 0 :(得分:11)
在本地构建Spark,简短的回答:
git clone git@github.com:apache/spark.git
cd spark
sbt/sbt compile
详细了解您的问题,您实际要问的是如何在Eclipse中调试Spark应用程序'。 要在Eclipse中进行调试,您并不需要在Eclipse中构建Spark。您所需要的只是创建一个具有Spark lib依赖性的作业,并询问Maven'下载源代码'。这样您就可以使用Eclipse调试器来进入代码。
然后,在创建Spark上下文时,使用sparkConfig。local[1]
作为主文件:
val conf = new SparkConf()
.setMaster("local[1]")
.setAppName("SparkDebugExample")
这样所有Spark交互都在一个线程中以本地模式执行,因此对调试器可见。
如果您正在调查性能问题,请记住Spark是一个分布式系统,其中网络扮演着重要角色。在本地调试系统只会给你一部分答案。需要监视实际群集中的作业,以便全面了解作业的性能特征。