HBase之Slow log

目录

  • Slow log
    • 记录条件
    • 日志示例
    • 配置内存存储
    • 配置表存储

Slow log

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

记录条件

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

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

日志示例

HBase之Slow log_第1张图片
response相关字段默认会被截断,导致某些关键信息缺失
HBase之Slow log_第2张图片

配置内存存储

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

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,hbase,大数据)