Я начну с того, что скажу, что я новичок в Scala.Я клонировал исходный код Spark из Github и играю, заглядывая под капот, потому что мне любопытно, как работает 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
( ссылка на Github здесь ), как часть значения initializationCommands
.
Я выполнил следующие шаги:
- Я попытался просто добавить
println(s"Spark context Web UI available at
${webUrl}!!!!"
, чтобы напечатать дополнительные восклицательные знаки для этого сообщения. - Я запустил
build/sbt clean package
, чтозавершено успешно. - Я запустил оболочку Spark с
bin/spark-shell
, ожидая, что мои восклицательные знаки появятся в консоли.Они не.Я получил то же самое сообщение по умолчанию, что и раньше (без восклицательных знаков).
Не отчаивайтесь, я заметил, что 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)Первые загрузки на локальных машинах без Hadoop.Ясно, что он может регистрировать предупреждающие сообщения.
Я попытался воспроизвести это, добавив простое сообщение регистрации в конструктор SparkContext
в определении класса SparkContext , так как я знаю, что этоинициализируется и доступен как sc
в оболочке Spark.Я отредактировал следующие строки в
class SparkContext(config: SparkConf) extends Logging {
logWarning("Hello!!!!")
/* rest of the constructor code is below */
Снова, я следовал той же процедуре очистки и сборки, и ожидал увидеть какое-нибудь сообщение о регистрации с Hello!!!!
в моей консоли.
Опять же, я вижу предупреждающее сообщение по умолчанию о том, что у меня нет собственного Hadoop, но нет моего собственного сообщения.
Я прошу прощения за, что, вероятно, очень новый вопрос, но что именно мне нужносделать, чтобы мои собственные изменения исходного кода отображались во время выполнения?Я также не совсем уверен, какую информацию я должен приложить, чтобы помочь людям ответить на мой вопрос - и был бы более чем рад предоставить.