通过记录器的 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 作业未启动