Spark程序中如何判断当前处在Driver还是Executor?

理由
举报 取消

用的是spark on yarn模式,想实现类似下面的代码:if (isDriver) { // 请问如何判断 doSomething()} else { doSomethingElse()}

2018年1月13日 2 条回复 942 次浏览

回复 ( 2 )

  1. 孤寂摩天轮
    理由
    举报 取消

    谢邀,应该可以获取到executor_id的,然后判断一下executor_id字符串是否含有driver子串就可以知道是不是driver了,在LinkedIn做的一个dr-elephant源码曾经看到过,特地回去看了看源码,具体是:在SparkDataCollection.java源码下获取的executor相关信息,在ExecutorLoadHeuristic.java下就用到这个判断是不是driver,建议看看。

  2. 翟士丹
    理由
    举报 取消

    Spark是没有暴露这方面的API的,题主判断是在Driver还是Executor用来做什么呢?

我来回答

Captcha 点击图片更换验证码