Hadoop集成BTrace

1.BTrace

1.1BTrace部署

1.下载BTrace工具包,官网地址:https://kenai.com/projects/btrace/downloads/directory/releases

2.解压btrace-bin.tar.gz,命令如下:

tar -zxvf btrace-bin.tar.gz

3.配置环境变量

BTRACE_HOME=/usr/btrace-bin

PATH=$PATH:$BTRACE_HOME/bin

4.执行btrace(注意:$BTRACE_HOME/bin下btrace、btracec、btracer文件权限)命令如下,表示部署成功:

1.2BTrace脚本

BTrace测试脚本代码:

 importcom.sun.btrace.annotations.*; 

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

 @BTrace
public class TraceMR
{
@TLS privatestaticlongmapperSetupStartTime = 0l; @OnMethod(clazz="org.apache.hadoop.mapreduce.Mapper",
method="run",
location=@Location(where=Where.BEFORE, value=Kind.CALL,clazz="/.*/", method="setup"))
public static void onMapper_run_Before_Call_setup() {
mapperSetupStartTime =timeNanos();
println(strcat("MAP\tSTARTUP_MEM\t",str(used(heapUsage()))));
} @OnMethod(clazz="org.apache.hadoop.mapreduce.Mapper",
method="run",
location=@Location(where=Where.AFTER, value=Kind.CALL,clazz="/.*/", method="setup"))
public static void onMapper_run_After_Call_setup() {
println(strcat("MAP\tSETUP\t",str(timeNanos() -mapperSetupStartTime)));
println(strcat("MAP\tSETUP_MEM\t",str(used(heapUsage()))));
}
}

1.3编译BTrace脚本

编译命令:btracec TraceMR.java

2.Hadoop配置

2.1分发文件

将BTrace文件:$BTRACE_HOME/build目录下的btrace-agent.jar和btrace-boot.jar,以及编译Btrace脚本后生成的class文件分发到各个子节点上。建议使用脚本分发,代码如下:

 #!/usr/bin/envbash
#Usage:
# ./install_btrace.sh <slaves_file>
#
# where:
# slaves_file = File containing a list of slavemachines
#
#Example:
# ./install_btrace.sh /root/SLAVE_NAMES.txt
#Make sure we have all the arguments
if [$# -ne ]; then
echo "Usage: $0<slaves_file>"
echo " slaves_file = File containing a list of slave machines"
echo ""
exit -
fi #Get the slaves file
declareSLAVES_FILE=$;
iftest ! -e $SLAVES_FILE; then
echo "ERROR: The file '$SLAVES_FILE'does not exist. Exiting"
exit -
fi
#Get the slaves file
declareSLAVES_FILE=$;
iftest ! -e $SLAVES_FILE; then
echo "ERROR: The file '$SLAVES_FILE'does not exist. Exiting"
exit -
fi MASTER_BTRACE_DIR=/home/wangpeng/zhiming/usr/btrace/build
SLAVES_BTRACE_DIR=/home/wangpeng/zhiming/usr forslave in `cat "$SLAVES_FILE"`; do
{
printf "Installing on host:$slave\n"
ssh $slave "mkdir -p$SLAVES_BTRACE_DIR"
scp ${MASTER_BTRACE_DIR}/btrace-agent.jar$slave:$SLAVES_BTRACE_DIR/.
scp ${MASTER_BTRACE_DIR}/btrace-boot.jar$slave:$SLAVES_BTRACE_DIR/.
scp ${MASTER_BTRACE_DIR}/TraceMR.class$slave:$SLAVES_BTRACE_DIR/.
}
done

2.2配置Hadoop文件

在所有子节点的$HADOOP_HOME安装目录下找到mapred-site.xml文件,进行如下设置:

代码:

 <property>
<name>mapred.map.child.java.opts</name>
<value>
-Xmx1024m -javaagent:/home/wangpeng/zhiming/usr/btrace/build/btrace-agent.jar =script=/home/wangpeng/zhiming/usr//TraceMR.class,stdout=true,noServer=true
</value>
</property>

2.3运行MR程序

1.准备一个写好的MR程序,如WordCount.java程序;

2.执行hadoop jar WordCount.jar WordCount /user/wzm/input /user/wzm/output。

2.4查看输出文件

在所有子节点的$HADOOP_HOME安装目录下找到logs目录中的stdout文件,执行命令:cat stdout,且有如下输出表示配置成功:

版权声明:本文为博主原创文章,未经博主允许不得转载。

BTrace追踪Hadoop部署的更多相关文章

  1. 利用神器BTrace 追踪线上 Spring Boot应用运行时信息

    概述 生产环境中的服务可能会出现各种问题,但总不能让服务下线来专门排查错误,这时候最好有一些手段来获取程序运行时信息,比如 接口方法参数/返回值.外部调用情况 以及 函数执行时间等信息以便定位问题.传 ...

  2. hadoop部署小结的命令

    hadoop部署总结的命令 学习笔记,转自:hadoop部署总结的命令http://www.aboutyun.com/thread-5385-1-1.html(出处: about云开发)

  3. Hadoop 部署文档

    Hadoop 部署文档 1 先决条件 2 下载二进制文件 3 修改配置文件 3.1 core-site.xml 3.2 hdfs-site.xml 3.3 mapred-site.xml 3.4 ya ...

  4. hadoop进阶----hadoop经验(一)-----生产环境hadoop部署在超大内存服务器的虚拟机集群上vs几个内存较小的物理机

    生产环境 hadoop部署在超大内存服务器的虚拟机集群上 好 还是  几个内存较小的物理机上好? 虚拟机集群优点 虚拟化会带来一些其他方面的功能. 资源隔离.有些集群是专用的,比如给你三台设备只跑一个 ...

  5. Hadoop部署方式-完全分布式(Fully-Distributed Mode)

    Hadoop部署方式-完全分布式(Fully-Distributed Mode) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本博客搭建的虚拟机是伪分布式环境(https://w ...

  6. Hadoop部署方式-伪分布式(Pseudo-Distributed Mode)

    Hadoop部署方式-伪分布式(Pseudo-Distributed Mode) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载相应的jdk和Hadoop安装包 JDK:h ...

  7. Hadoop部署方式-本地模式(Local (Standalone) Mode)

    Hadoop部署方式-本地模式(Local (Standalone) Mode) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Hadoop总共有三种运行方式.本地模式(Local ...

  8. hadoop部署中遇到ssh设置的问题

    尽管hadoop和一些培训视频课程上讲分布式部署比较详细,但是在部署时仍遇到了一些小问题,在此mark一下: 1.linux的namenode主机上安装了ssh,也启动了ssh,并且执行了: /etc ...

  9. hadoop部署工具与配置工具

    https://github.com/xianglei/phpHiveAdmin 随着Hadoop的推出,大数据处理实现了技术上的落地.但是对于一般的公司和开发者而言,Hadoop依旧是一个陌生或者难 ...

随机推荐

  1. Ubuntu 16.04 natural scrolling

    http://ubuntuhandbook.org/index.php/2016/05/install-ubuntu-tweak-in-ubuntu-16-04/ download ubuntu-tw ...

  2. 【转】httpservlet 文章

    HttpServlet类 ellisonDon 2012-10-25 12:42 阅读:2015 评论:0     HttpServlet的功能 ellisonDon 2012-10-25 11:02 ...

  3. Python 中的属性访问与描述符

    在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言,点(. ...

  4. PyDev for eclipse 插件下载地址

    PyDev for eclipse 插件下载地址http://sourceforge.net/projects/pydev/files/pydev/python解释器以及python类库下载地址htt ...

  5. MPI 并行奇偶交换排序 + 集合通信函数 Sendrecv() Sendvecv_replace()

    ▶ <并行程序设计导论>第三章的例子程序 ● 代码 #include <stdio.h> #include <mpi.h> #include <stdlib. ...

  6. 1.2 auth2.0

    多个应用 入sina  qq  msn  豆瓣 等 在手机登录时或终端登录时如果统一可以根据硬件做 gettid()-为了保证唯一性:方案一:      事先生成唯一验证码:使用一个isue 设置为1 ...

  7. leetcode204

    public class Solution { public int CountPrimes(int n) { ) { ; } ]; ]; ; ; i < n; i++) { mark[i] = ...

  8. maven+testng+reportng的pom设置

    在pom.xml 加入: <dependency> <groupId>org.testng</groupId> <artifactId>testng&l ...

  9. How to run eclipse in clean mode? and what happens if we do so?

    What it does: if set to "true", any cached data used by the OSGi framework and eclipse run ...

  10. C#委托(匿名函数)的各种变形写法

      static void TestDelegate() { //类C++11风格:指定初始化容量20,使用初始化列表给部分成员赋值 ) { , , , , -, , }; ; i < lst. ...