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. 安装memcached服务 和 php 安装memcache扩展

    这是所有的命令,至于哪个命令是干嘛的自己悟去吧  ,顺便穿插一些知识点 安装libevent cd /home/ wget  http://www.monkey.org/~provos/libeven ...

  2. ACM-Teleportation

    我的代码: #include <bits/stdc++.h> using namespace std; int main() { int a,b,x,y; cin>>a> ...

  3. 对widget使用WM_SetCallback

    当我们对widget使用WM_SetCallback拦截并处理一些消息,可能需要在处理完某些消息后继续调用该Widget原来的callback,典型的例子是WM_DELETE,因为几乎所有widget ...

  4. Java 获取字符串指定下标位置的值 charAt()

    Java手册 charAt public char charAt(int index) 返回指定索引处的 char 值.索引范围为从 0 到 length() - 1.序列的第一个 char 值位于索 ...

  5. 设置修改CentOS系统时间和时区

    1.yum install ntp,安装时间服务ntpdate time-a.nist.gov && hwclock -w (跟网络同步时间,并且写入主板BIos) 2.chkconf ...

  6. 【Codeforces】Educational Codeforces Round 46(Contest 1000)

    题目 传送门:QWQ A:Codehorses T-shirts 题意: 给定一些字符串表示去年和今年的衣服型号大小( XL XXL M...... ),要求用最少的次数把去年的衣服大小改成今年需要的 ...

  7. lambda架构简介

    1.Lambda架构背景介绍 Lambda架构是由Storm的作者Nathan Marz提出的一个实时大数据处理框架.Marz在Twitter工作期间开发了著名的实时大数据处理框架Storm,Lamb ...

  8. 接口自动化(五)--打印log到文档

    这一部分实现比较简单,直接上代码: import logging class Logger(): def __init__(self,content,*raw): self.content = con ...

  9. $(window).scrollTop() 获取当前的鼠标位置 offset.left()指定标签在html中的坐标 offset.top() 指定标签在html中的坐标position() 指定标签相对父(relative)标签的坐标

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Spring Boot实践——AOP实现

    借鉴:http://www.cnblogs.com/xrq730/p/4919025.html     https://blog.csdn.net/zhaokejin521/article/detai ...