如何在我的AWS EMR定制凭证提供程序中获取log4j语句以出现在Zeppelin中?

时间:2019-04-15 20:27:06

标签: apache-spark hadoop amazon-emr apache-zeppelin

我已按照Authorizing Access to EMRFS Data in Amazon S3Securely analyze data from another aws account with emrfs中的指南为EMRFS实现了自定义凭据提供程序。

凭据提供程序本身可以工作,并且可以看到它被调用,因为我在System.out.println()方法中有“常规” .getCredentials()语句,这些语句显示在Zeppelin的输出中。

例如,当执行`spark.read.parquet(“ s3:// xxxxx”)时,这些日志将显示为注释段落的结果部分的一部分。

我在System.out.println旁边有log4j语句,但它们根本没有显示。

我对spark-log4jhadoop-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"
    }
  }

您是否知道为什么在Zeppelin笔记的结果中捕获到log4j的日志,而常规System.out是捕获

的原因?

0 个答案:

没有答案