HBase之Slow log

Slow log

hbase会记录慢查询日志,关键字包括responseTooSlow、responseTooLarge、operationTooSlow、and operationTooLarge。

记录条件

响应时间和响应的数据大小可由以下参数配置

  • hbase.ipc.warn.response.time :查询运行超过该值的时间(毫秒),将被日志记录。默认10s,设置为-1则禁用日志记录
  • hbase.ipc.warn.response.size :查询返回的数据超过该值(字节),将被日志记录。默认100M,设置为-1则禁用日志记录

日志示例

在这里插入图片描述
response相关字段默认会被截断,导致某些关键信息缺失
在这里插入图片描述

配置内存存储

用于配置一个环形缓冲区来存储

hbase.regionserver.slowlog.buffer.enabled=true
hbase.regionserver.slowlog.ringbuffer.size=配置缓冲区的大小

开启环形缓冲区后,可以从shell获取慢日志

// 获取所有rs的慢日志记录
hbase> get_slowlog_responses '*' 
// 获取某一rs的记录
hbase> get_slowlog_responses host187.example.com,60020,1289493121758
// 获取给定client ip的慢记录
hbase> get_slowlog_responses '*', {'CLIENT_IP' => '192.162.1.40:60225', 'LIMIT' => 100}
获取超限日志 使用get_largelog_responses命令

配置表存储

缓冲区会被覆盖,同时需要系统表来持久化存储。
每个regionserver会启动一个cron作业,从队列中检索日志并插入系统表。

hbase.regionserver.slowlog.systable.enabled=true 
日志会存储到系统表hbase:slowlog
hbase.slowlog.systable.chore.duration=10min 
间隔时间
hbase.regionserver.slowlog.systable.queue.size=1000
regionserver存储的条数,默认1000

系统表列族info,包含以下列

  • info:call_details
  • info:client_address
  • info:method_name
  • info:param
  • info:processing_time
  • info:queue_time
  • info:region_name
  • info:response_size
  • info:server_class
  • info:start_time
  • info:type
  • info:username
### 如何在 HBase 中设置 Log4j 配置 Log4j 是一个广泛使用的日志记录工具,在 HBase 中用于管理和控制日志输出。为了确保 HBase 日志系统的正常工作并避免警告信息 `log4j:WARN Please initialize the log4j system properly.`[^3],需要正确配置 Log4j。 #### 修改 Log4j 属性文件 通常情况下,HBase 使用位于 `$HBASE_HOME/conf` 目录下的 `log4j.properties` 文件来定义日志级别和其他参数。如果此文件不存在,则可以创建一个新的属性文件或将现有模板复制过来: ```bash cp $HBASE_HOME/conf/log4j.properties.template $HBASE_HOME/conf/log4j.properties ``` 编辑该文件以调整所需的日志行为。例如,要更改根日志器的优先级为 WARN 并将消息发送到控制台追加程序,可修改如下内容: ```properties # Set root logger level to WARN and its only appender to CONSOLE. log4j.rootLogger=WARN, CONSOLE ``` 还可以通过添加自定义 Appenders 或者改变特定包的日志等级来精细化管理日志输出。对于生产环境中,建议将日志保存至文件而不是仅限于标准输出流,并考虑启用滚动机制防止日志文件无限增长。 #### 设置环境变量 LOG4J_PROPS 除了直接操作配置文件外,另一种方法是在启动 HBase 前设定环境变量 `LOG4J_PROPS` 来指向外部的 Log4j 属性文件路径。这允许更灵活地切换不同的日志策略而无需每次都重新分发配置文件给集群节点。 ```bash export LOG4J_PROPS=/path/to/custom-log4j.properties ``` 之后重启 HBase 服务使新的日志配置生效即可消除上述提到的日志初始化警告提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值