HBase链路监控:HTrace+Zipkin

本文介绍了HTrace和ZipKin在HBase中的应用。HTrace曾是apache孵化项目,早期HBase和Hadoop版本使用过。文中演示了启用HTrace的trace功能及输出日志的过程,还介绍了使用ZipKin展示链路,包括下载服务、配置HBase端和客户端,以实现完整链路的可视化。

HTrace是曾经apache的一个孵化项目,在18年孵化失败,停止开发了:https://incubator.apache.org/projects/htrace.html。

但在早期HBase和Hadoop版本中使用了HTrace,可以试试。

HTrace原始日志

在hbase的lib下已经自带了htrace的依赖:

[root@10 hbase-1.2.0]# ll lib/|grep htrace
-rw-rw-r-- 1 root root 1475955 Dec 27 2015 htrace-core-3.1.0-incubating.jar

启用trace功能,加入以下配置到 hbase-site.xml

<property>
    <name>hbase.htrace.sampler</name>
    <value>AlwaysSampler</value>
</property>
<property>
    <name>hbase.trace.spanreceiver.classes</name>
    <value>org.apache.htrace.impl.LocalFileSpanReceiver</value>
</property>
<property>
    <name>hbase.htrace.local-file-span-receiver.path</name>
    <value>/home/service/hbase/hbase-1.2.0/trace-log.out</value>
</property>

现在重新启动hbase,发现多出了 trace-out.log文件,但是没有任何东西。

使用客户端发起几个读请求,也没有日志输出。

原因是,trace需要客户端手动发起,下面演示其过程。

客户端引入htrace-core依赖:

<dependency>
    <groupId>org.apache.htrace</groupId>
    <artifactId>htrace-core</artifactId>
    <version>3.1.0-incubating</version>
</dependency>

修改读取代码如下:

public interface Callback {
   
   
    void execute(Table table) throws IOException, InterruptedException;
}
 
public static void execute(Callback callback) {
   
   
    Configuration c = HBaseConfiguration.create();
    c.set("hbase.zookeeper.quorum", "10.10.11.12");
    try (Connection connection = ConnectionFactory.createConnection(c)) {
   
   
        Table table = connection.getTable(TableName.valueOf(TABLE));
        callback.execute(table);
    } catch (IOException | InterruptedException e) {
   
   
        e.printStackTrace(</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值