Изменения, внесенные в базу Scala-кода Spark, не отражаются во время выполнения - PullRequest
0 голосов
/ 28 ноября 2018

Я начну с того, что скажу, что я новичок в 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.

Я выполнил следующие шаги:

  1. Я попытался просто добавить println(s"Spark context Web UI available at ${webUrl}!!!!", чтобы напечатать дополнительные восклицательные знаки для этого сообщения.
  2. Я запустил build/sbt clean package, чтозавершено успешно.
  3. Я запустил оболочку 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, но нет моего собственного сообщения.

Я прошу прощения за, что, вероятно, очень новый вопрос, но что именно мне нужносделать, чтобы мои собственные изменения исходного кода отображались во время выполнения?Я также не совсем уверен, какую информацию я должен приложить, чтобы помочь людям ответить на мой вопрос - и был бы более чем рад предоставить.

1 Ответ

0 голосов
/ 29 ноября 2018

Оказалось глупой ошибкой с моей стороны.У меня была установлена ​​и настроена существующая установка Spark (для реальной работы, а не рисования вокруг).Я изменил свои переменные окружения, но никогда не использовал свой профиль bash.Чтобы быть явным, вы должны

export SPARK_HOME=path/to/your/spark/source/code

затем, source ~/.bash_profile или где бы вы ни хранили переменные вашей среды.

Я никогда не получал, поэтому при наборе spark-shell он все еще указывал намоя существующая установка Spark.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...