我已按照Authorizing Access to EMRFS Data in Amazon S3和Securely analyze data from another aws account with emrfs中的指南为EMRFS实现了自定义凭据提供程序。
凭据提供程序本身可以工作,并且可以看到它被调用,因为我在System.out.println()
方法中有“常规” .getCredentials()
语句,这些语句显示在Zeppelin的输出中。
例如,当执行`spark.read.parquet(“ s3:// xxxxx”)时,这些日志将显示为注释段落的结果部分的一部分。
我在System.out.println
旁边有log4j语句,但它们根本没有显示。
我对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"
}
}
您是否知道为什么在Zeppelin笔记的结果中未捕获到log4j的日志,而常规System.out
是捕获