通过记录器的 Java Spark 应用程序日志未显示在 EMR 日志中

Posted

技术标签:

【中文标题】通过记录器的 Java Spark 应用程序日志未显示在 EMR 日志中【英文标题】:Java Spark application logs through logger is not showing in EMR log 【发布时间】:2019-05-29 02:33:19 【问题描述】:

我有一个在 EMR 上运行的 Spark Java 应用程序。当我尝试在本地运行 spark 作业并登录到 EMR EC2 实例时,我正在从控制台上的 java 应用程序获取我的 Logger 信息。

/usr/lib/spark/bin/spark-submit --class com.myproject.MyMainSparkClass --conf 'spark.driver.extraJavaOptions=-Dcong.parameters=somepropertiesparameter' --conf 'spark.executor.extraJavaOptions=-Dcong.parameters=somepropertiesparameter' --master local s3://myJarS3Location/myjar.jar

在控制台上我的记录器信息:19/05/29 01:50:11 INFO DataTransforFileProcessUtility: ############ Job started at :2019-05-29 01:50:11.391 ############

当我使用集群模式时:

/usr/lib/spark/bin/spark-submit --deploy-mode cluster --master yarn --class com.myproject.MyMainSparkClass --conf 'spark.driver.extraJavaOptions=-Dcong.parameters=somepropertiesparameter' --conf 'spark.executor.extraJavaOptions=-Dcong.parameters=somepropertiesparameter' s3://myJarS3Location/myjar.jar

我无法从控制台上的应用程序中获取记录器信息。如果我在 EMR 上执行集群模式命令作为步骤,我仍然没有在任何日志文件中找到应用程序记录器信息。如果我们使用 Yarn 在集群模式下运行,应用程序记录器信息是否会记录在任何地方?

【问题讨论】:

【参考方案1】:

当你使用集群模式时,你应该去 Yarn Resourcemanager 或者 Spark History Server 获取你的应用日志;

就我而言(cloudera CDH): - 纱线 RM:http:$your_yarn_resourcemanager_host:8088/cluster - Spark 历史服务器:http:$your_spark_history_server_host:18088

【讨论】:

【参考方案2】:

在 Yarn 集群模式下运行时,驱动代码与 Application master(AM) 运行在同一进程中。 日志将记录在 AM 日志中。 您可以从资源管理器中找到 AM,也可以从中找到日志链接。

【讨论】:

以上是关于通过记录器的 Java Spark 应用程序日志未显示在 EMR 日志中的主要内容,如果未能解决你的问题,请参考以下文章

由于令牌在 24 小时后无法在缓存中找到,Spark Launcher 作业未启动

如何记录hadoop mapreduce运行日志

测试方法Flume+HDFS+Spark日志分析入门篇

Spark运行好好的出现如下问题(未解决记录一下)

Spark Cassandra 连接器基础简单程序获取火花记录错误

在Java中处理日志记录