首先我要说我是Scala的初学者。我从Github克隆了Spark源代码,然后四处寻找,因为我对Spark的内部工作感到好奇。
但是,当我重建并运行Spark时,似乎并没有反映出我对代码库所做的任何更改。例如,在spark-shell
REPL中,将打印初始化
Spark context Web UI available at [some address and port]
。这部分来自repl.src.main.scala.org.apache.spark.repl.SparkILoop.scala
(),是initializationCommands
值的一部分。
我执行了以下步骤:
println(s"Spark context Web UI available at
${webUrl}!!!!"
来为此消息打印额外的感叹号。build/sbt clean package
,成功完成了。bin/spark-shell
开始了我的Spark shell,期望
感叹号将出现在控制台中。他们没有。我有
与以前完全相同的默认消息(不带感叹号)。不要气our,我注意到18/11/28 08:09:20 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
通常在Spark(和Spark Shell)首次加载到没有Hadoop的本地计算机上时作为日志消息打印。很明显,它能够记录警告消息。
我尝试通过向link to Github here中的SparkContext
构造函数添加一个简单的日志消息来复制此消息,因为我知道这已初始化并且可以在Spark shell中作为sc
使用。我在
class SparkContext(config: SparkConf) extends Logging {
logWarning("Hello!!!!")
/* rest of the constructor code is below */
同样,我遵循相同的清理和构建过程,并希望在控制台中看到带有Hello!!!!
的日志消息。
同样,我看到默认警告消息是没有本地Hadoop,但没有我自己的消息。
我为可能是一个非常新奇的问题表示歉意,但是究竟需要做些什么才能使自己的源代码更改显示在运行时?我也不太确定我应该附加哪些信息以帮助人们回答我的问题,并且乐于提供。
答案 0 :(得分:0)
原来,这对我来说是一个愚蠢的错误。我已经设置并配置了一个现有的Spark安装(用于实际工作,而不是闲逛)。我更改了环境变量,但从未获取我的bash配置文件。明确地说,您应该
export SPARK_HOME=path/to/your/spark/source/code
然后source ~/.bash_profile
或您存储环境变量的任何地方。
我从不采购信息,因此在输入spark-shell
时,它仍然指向我现有的Spark安装。