我正在尝试设计一个集成测试框架。
我将运行一些用Scala编写的jar,并使用spark-submit --master yarn
命令运行Spark进程。
有什么方法可以在运行此jar时提交一些id或名称,以帮助我找到哪个jar进程调用了哪个yarn进程,从而使其更易于调试?
编辑:我无法在Scala中编辑代码,我唯一能做的就是在我的环境中运行jar。
最佳答案
您可以使用应用程序名称检查Spark提交的 yarn 应用程序。
一种。使用应用程序名称参数提交Spark应用程序。
SparkSession.builder.appName("spark-app-name")......
b。使用应用名称检查Yarn应用ID。
yarn application -list | awk '$2 == "spark-app-name" {print $1}'
C。获得应用程序ID后,您可以使用Yarn REST API检查Yarn应用程序的状态:
http://<RM_HOST>:8088/ws/v1/cluster/apps/$job_id/state
关于scala - 使用scala-submit从scala二进制文件开始跟踪和记录/调试 yarn 的贴合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52810136/