Как получить инструкции log4j в моем поставщике пользовательских учетных данных AWS EMR для отображения в Zeppelin? - PullRequest
0 голосов
/ 15 апреля 2019

Я реализовал пользовательский поставщик учетных данных для EMRFS, следуя инструкциям в Авторизация доступа к данным EMRFS в Amazon S3 и Безопасный анализ данных из другой учетной записи aws с помощью emrfs .

Сам провайдер учетных данных работает, и я вижу, что он вызывается, потому что у меня есть "обычные" операторы System.out.println() в методе .getCredentials(), которые отображаются в выходных данных Zeppelin.

Эти журналы показываются как часть раздела результата абзаца заметки при выполнении, например, `spark.read.parquet (" s3: // xxxxx ").

У меня есть оператор log4j рядом с System.out.println, но они вообще не отображаются.

Я использую следующие классификации конфигурации для spark-log4j и hadoop-log4j, где я заявляю, что хочу, чтобы вывод был отправлен на ConsoleAppender System.out, который должен отправить журналы log4j на System.out, но это не происходит.

 {
    "Classification": "spark-log4j",
    "Properties": {
      "log4j.rootCategory": "INFO, console",
      "log4j.appender.console.target":  "System.out",
      "log4j.logger.package1.package2.EmrCustomCredentialsProvider":  "DEBUG, console"
    }
  },
  {
    "Classification": "hadoop-log4j",
    "Properties": {
      "log4j.rootCategory": "INFO, console",
      "log4j.appender.console.target":  "System.out",
      "log4j.logger.package1.package2.EmrCustomCredentialsProvider":  "DEBUG, console"
    }
  }

Есть идеи, почему журналы log4j не записаны в результате заметки Zeppelin, а обычные System.out?

...