环境: AWS EMR,纱线集群。
描述: 在Spark ui上,在Environment和Executors选项卡中,stdout和stderr的链接指向执行程序的内部地址。这意味着公开执行程序以便可以访问链接。难道不应该将这些链接指向master,然后在内部处理主服务器作为这些文件的代理而不是暴露内部机器吗?
我尝试过设置SPARK_PUBLIC_DNS和SPARK_LOCAL_IP变量,因此它们包含主IP地址。我也试过这个属性:spark.yarn.appMasterEnv.SPARK_LOCAL_IP和spark.yarn.appMasterEnv.SPARK_PUBLIC_DNS但它似乎不起作用。
有什么建议吗?
答案 0 :(得分:0)
Spark建议将日志目录设置为hdfs,以便可以从任何地方访问它。
https://spark.apache.org/docs/latest/configuration.html
所以你需要做的是在spark-default.conf中设置它:
spark.eventLog.enabled` true
spark.eventLog.dir hdfs:///somewhere
第一个允许您在执行完成后查阅日志。第二个告诉spark执行器将日志放在何处。