性能测试-Hbase Hadoop监控

以前做过一个性能测试项目,基于nginx+Hbase+Hadoop,第一次接触开源的东西,遇到各种问题,印象深的是Hbase和Hadoop的监控,当时也搜索到可以用开源的监控工具或写代码通过JMX取JVM的信息。在摸索的过程中发现一种更简单方便的办法,不用监控工具和写大量代码,直接用loadrunner脚本(该办法可能不专业,但是能用,可以让项目尽快进行,仅供参考)。

我们知道Hbase开放了60010和60030端口,Hadoop开放的50070端口,以web的方式查看master、region和hadoop的性能状况(比如查看master只需要在浏览器输入http://IP:60010/),可以查看进程的heap、request、queue使用情况,这些指标正是性能测试需要关注的。而这些信息是通过JMX传递,在浏览器中输入http://IP:port/jmx,会以json的格式返回此刻进程JVM的情况,效果如截图。

master信息

json信息

看到这些信息之后,我的第一反应就是这些返回的信息可用loadrunner的web_reg_save_param函数保存起来,然后写到txt里面。

所以决定Hbase和Hadoop的资源监控流程:

1、loadrunner定时获取json

2、讲关键指标保存到txt

3、用excel生成趋势图

loadrunner脚本:

Action()
{
int filename;
int i;
int len;
char * item;

//hbase region
lr_think_time(10);
lr_start_transaction("heap");
    web_reg_save_param_ex(
        "ParamName=regionHeap",
        "LB= : ",
        "RB=\n    },",
        SEARCH_FILTERS,
        "Scope=Body",
        "IgnoreRedirections=Yes",
        "RequestUrl=*/jmx*",
        LAST);

    web_url("jmx",
        "URL=http://IP:60030/jmx",
        "Resource=1",
        "RecContentType=application/json",
        "Referer=",
        "Snapshot=t1.inf",
        LAST);
    lr_error_message("region is %s", lr_eval_string("{regionHeap}"));
//hadoop namenode
    web_reg_save_param_ex(
        "ParamName=nameNodeHeap",
        "LB= : ",
        "RB=\n    },",
        SEARCH_FILTERS,
        "Scope=Body",
        "IgnoreRedirections=Yes",
        "RequestUrl=*/jmx*",
        LAST);

    web_url("jmx",
        "URL=http://IP:50070/jmx",
        "Resource=1",
        "RecContentType=application/json",
        "Referer=",
        "Snapshot=t1.inf",
        LAST);
    lr_error_message("nameNodeHeap is %s", lr_eval_string("{nameNodeHeap}"));
//hbase master
    web_reg_save_param_ex(
        "ParamName=masterHeap",
        "LB= : ",
        "RB=\n    },",
        SEARCH_FILTERS,
        "Scope=Body",
        "IgnoreRedirections=Yes",
        "RequestUrl=*/jmx*",
        LAST);
    web_url("jmx",
        "URL=http://IP:60010/jmx",
        "Resource=1",
        "RecContentType=application/json",
        "Referer=",
        "Snapshot=t1.inf",
        LAST);
    lr_error_message("master is %s", lr_eval_string("{regionHeap}"));
lr_end_transaction("heap",LR_AUTO);

//write text
filename=fopen("E:\\cowen\\B2C\\monitor\\master.txt","a");//w-write,r-read,a-append
fprintf(filename,"%s",lr_eval_string("{masterHeap}"));
    fprintf(filename,"%s","\n");
    fclose(filename);

filename=fopen("E:\\cowen\\B2C\\monitor\\region.txt","a");//w-write,r-read,a-append
fprintf(filename,"%s",lr_eval_string("{regionHeap}"));
    fprintf(filename,"%s","\n");
    fclose(filename);

filename=fopen("E:\\cowen\\B2C\\monitor\\namenode.txt","a");//w-write,r-read,a-append
fprintf(filename,"%s",lr_eval_string("{nameNodeHeap}"));
    fprintf(filename,"%s","\n");
    fclose(filename);
return 0;
}

效果图

时间: 2024-10-25 15:24:38

性能测试-Hbase Hadoop监控的相关文章

在Hadoop监控页面怎样查看Hive的完整SQL

如图.这里仅仅能看到简单的一段SQL.差点儿看不出详细在运行什么任务. 此时能够点开一个application.点击Tracking URL: ApplicationMaster 进入到MapReduce Job job_1409xxxx,Job页面 点击左側的Configuration 这里有此Job相应的全部參数.在 右上角的搜索框中输入string, 当中key为 hive.query.string相应的value值就是完整的hive SQL语. 如图 之前并没有好好看过Hadoop监控页

在Hadoop监控页面如何查看Hive的完整SQL

如图,这里只能看到简单的一段SQL,几乎看不出具体在执行什么任务. 此时可以点开一个application,点击Tracking URL: ApplicationMaster 进入到MapReduce Job job_1409xxxx,Job页面 点击左侧的Configuration 这里有此Job对应的所有参数,在 右上角的搜索框中输入string, 其中key为 hive.query.string对应的value值就是完整的hive SQL语. 如图 之前并没有好好看过Hadoop监控页面,

基于HBase Hadoop 分布式集群环境下的MapReduce程序开发

HBase分布式集群环境搭建成功后,连续4.5天实验客户端Map/Reduce程序开发,这方面的代码网上多得是,写个测试代码非常容易,可是真正运行起来可说是历经挫折.下面就是我最终调通并让程序在集群上运行起来的一些经验教训. 一.首先说一下我的环境: 1,集群的环境配置请见这篇博文. 2,开发客户机环境:操作系统是CentOS6.5,JDK版本是1.7.0-60,开发工具是Eclipse(原始安装是从google的ADT网站下载的ADT专用开发环境,后来加装了Java企业开发的工具,启动Flas

构建Hadoop监控共同体

HDFS监控背后那些事儿,构建Hadoop监控共同体 原创: 应用研发部 京东云 2018-12-19 https://mp.weixin.qq.com/s/kulwDgwu-rYf4SvQ1dOwcw 原文地址:https://www.cnblogs.com/yuanjiangw/p/10941154.html

hbase ganglia监控配置

hbase ganglia 显示器 hbase 构造 hadoop-metrics2-hbase.properties *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 *.sink.ganglia.period=10 hbase.sink.ganglia.period=10 hbase.sink.ganglia.servers=239.2.11.71:8649 hbase.class=org.a

Hadoop监控分析工具Dr.Elephant

公司基础架构这边想提取慢作业和获悉资源浪费的情况,所以装个dr elephant看看.LinkIn开源的系统,可以对基于yarn的mr和spark作业进行性能分析和调优建议. DRE大部分基于java开发,spark监控部分使用scala开发,使用play堆栈式框架.这是一个类似Python里面Django的框架,基于java?scala?没太细了解,直接下来就能用,需要java1.8以上. prerequest list: Java 1.8 PlayFramework+activator No

HADOOP监控

Hadoop负载均衡 均衡器(balancer)是一个Hadoop守护进程,它将块从忙碌的datanode移到相对空闲的datanode,从而重新分配块.同时坚持块副本放置策略,将副本分散到不同机架,以降低数据损坏率.它不断移动块,直到集群达到均衡,即每个datanode的使用率(该节点上已使用的空间与空间容量之间的比率)和集群的使用率(集群中已使用的空间与集群的空间容量之间的比率)非常接近,差距不超过给定的阈值. 为降低集群负荷,避免干扰其他用户,均衡器被设计为后台运行.在不同节点之间复制数据

性能测试(测试指标监控策略汇总)

监控类别 监控指标 监控工具或命令 APP前端 响应时间.吞吐量.TPS.点击率.超时概率.错误概率.页面性能 工具:ddms25.页面工具:YSlow3.1.ChromDevTools(基于Chrome57)综合工具:GT.Emmagee 应用服务器(jvm和配置) JVM.最大线程数.DB连接数.full gc频率.是否有异常日志.是否有OOM.内存泄露.代码异常.线程死锁 工具:jvisualvm(基于jdk1.7)工具:MemoryAnalyzer1.6命令:jps jinfo jsta

性能测试-各环节监控

oracle的一个实例的链接不能超过2万 nginx在7层.F5在4层,Nginx可以根据内容分发,F5只能识别IP和端口 mongdb用在最常用的查询场景 redias是key-value类型的数据库,最大的优势是内存上跑 页面基础原则:单页面不超过1s weblogic 1.xms(JVM初始分配的堆内存)内存最大,xmx(JVM最大允许分配的堆内存)内存最小值.xmn是xms和xmx的新生代,是xms的0.25.xmx要大于xms a.内存大小一致最好 b.分配1.5~4G合适,因为这个和