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(</

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

被折叠的 条评论
为什么被折叠?



