whitelilis / whitelilis.github.io

5 stars 0 forks source link

spark 报没有写权限 #7

Open whitelilis opened 6 years ago

whitelilis commented 6 years ago

spark 用户反馈 spark 报路径没有写权限,不知道为什么要写 '/' 目录, 程序里按说不会写这个目录里

image

编写 btrace ( greys 不支持随程序加载, 所以只好用 btrace) 看了一下更深入的 stack 信息, 要追踪 DistributedFileSystem 的 create 方法更好拿到 path 信息

import com.sun.btrace.AnyType;
import com.sun.btrace.annotations.*;

import static com.sun.btrace.BTraceUtils.*;

@BTrace(unsafe = false) // default
public class BP {

    static String ts(){
        return timestamp("yyyy-MM-dd HH:mm:ss,S");
    }

    @OnMethod( clazz = "org.apache.hadoop.hdfs.DistributedFileSystem", method="create")
    public static void on3(@ProbeClassName String pcn, @ProbeMethodName String pmn, AnyType a1, AnyType a2, boolean a3, int a4, short a5, long a6, AnyType a7){
        println("------------------------------- " + ts() +  " call in blockreport  -----------------------");
        printFields(a1);
    }
}

加入启动选项

--conf spark.executor.extraJavaOptions="-XX:+UseG1GC   -XX:+ParallelRefProcEnabled  -javaagent:/opt/bt/build/btrace-agent.jar=stdout=true,noServer=true,script=/tmp/BP.class"

image

问题找到, 其它的就留给用户自己去解决喽.