Starfish中如何实现性能分析(1)

在Starfish做profile会输入如下命令: ./bin/profile hadoop jar ...*.jar <MainClass> <args...>。根据这个命令查看/bin/profile目录下面的profile文件。前面对命令格式的处理不做解释。直接看最后
# Specify the Java agent
   HADOOP_OPTS="${HADOOP_OPTS} -javaagent:${MASTER_BTRACE_DIR}/btrace-agent.jar=dumpClasses=false,debug=false,unsafe=true,probeDescPath=.,noServer=true,stdout,script=${MASTER_BTRACE_DIR}/BTraceJobProfiler.class"

   # Export the required hadoop parameters
   export HADOOP_OPTS
   export HADOOP_CLASSPATH

   # Execute the hadoop command
   ${HADOOP_HOME}/bin/hadoop "$@"
上面可以看出用到了javaagent。javaagent是在你的main方法前的一个拦截器(interceptor),就是在main方法执行之前执行agent的代码。在javaagent中要注意的是写完代理类之后打包成jar包,在jar包里面的META-INF/MAINIFEST.MF必须包含Premain-Class这个属性。指出在main方法之前调用的代理类。不过Starfish中用到的是Btrace代理类,这个在Btrace-agent.jar中已经弄好了。script指出了真正的跟踪程序,BtraceJobProfiler.class。开始看这个源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值