ZK监控方法以及核心指标_zookeeper-exporter采集哪些指标

文章目录

探讨zk的监控数据采集方式以及需要关注的核心指标,便于日常生产进行监控和巡检。

1. 监控指标采集

  1. 3.6.0 版本后,原生支持开放指标接口供Prometheus采集。
  2. 如果低于3.6.0 版本,只能使用zookeeper-exporter进行采集

1.1 zk版本高于3.6.0监控指标采集

详细的可以参考 ZooKeeper Monitor Guide

具体操作如下
1, 调整zoo.cfg配置,增加配置

metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpPort=7000
metricsProvider.exportJvmInfo=true

在这里插入图片描述
指标的暴露接口是7000,完成配置并重启zk后可以获取对应的指标。

curl localhost:7000/metrics

在这里插入图片描述

1.2 zk版本低于3.6.0监控指标采集

可以通过 zookeeper-exporter 下载zookeeper-exporter的安装包,并进行配置。

进程启动配置

./zookeeper-exporter -listen 0.0.0.0:7000 -zk-hosts Master:2181,Slave1:2181,Slave2:2181

更多使用方法可以参考 文档

指标的暴露接口是7000,完成配置并重启zk后可以获取对应的指标。

curl localhost:7000/metrics

1.3 配置promethues采集和大盘

完成指标采集后,可以通过prometheus配置监控、告警和大盘。

配置prometheus的指标采集任务

  • job_name: zk
    static_configs:
  • targets: [‘172.19.0.2:7000’,‘172.19.0.3:7000’,‘172.19.0.4:7000’]

完成prometheus监控指标后,就可以配置grafana大盘,grafana的dashboard官网可以下载很多优秀的大盘进行借鉴,本文不再追溯。

2. 核心告警指标

ZooKeeper Monitor Guide中记录了zk的关键指标进行配置告警,可以参考。

groups:

  • name: zk-alert-example
    rules:
  • alert: ZooKeeper server is down
    expr: up == 0
    for: 1m
    labels:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-jAKPVQt6-1712540130798)]

<think>嗯,用户想了解HBase的配置和操作指南。首先,我得回忆一下HBase的基本知识。HBase是构建在Hadoop上的分布式列式数据库,适合处理海量数据。配置部分可能包括系统设置、HBase自身的配置文件,还有操作方面如shell命令和API使用。 用户提供的引用里提到了操作系统的配置,比如文件描述符和进程数,这些是运行HBase前必须调整的,尤其是ulimit的设置。记得这些配置不是HBase本身的,而是操作系统的,需要为运行HBase的用户调整。比如,在引用[1]中提到,要查看启动HBase的用户及其ulimit配置,需要检查HBase日志的第一行。这部分可能涉及如何设置nofile和nproc,防止资源不足的问题。 然后,HBase的配置文件像hbase-site.xml、hbase-env.sh,需要配置ZooKeeper的地址、数据目录、堆内存大小等。比如,hbase.rootdir指向HDFS的路径,hbase.zookeeper.quorum设置ZooKeeper的节点。另外,区域服务器和Master的配置也很重要,如处理线程数和JVM参数。 操作方面,HBase Shell是常用的工具。用户提供的引用[2]里有一个get_server_rsgroup的命令,这属于HBase的组管理操作。可能需要介绍基本的shell命令,比如创建表、插入数据、扫描查询,以及区域管理命令。另外,HBase的API使用也是重点,比如用Java连接和操作表。 维护部分,HBase的健康检查很重要。引用[3]提到的HBCK报告页面,用于检查元数据的一致性和文件系统的状态。需要解释如何访问Master UI中的HBCK报告,识别和处理问题,比如区域重叠或漏洞。此外,定期维护任务如合并区域、平衡负载、备份恢复也是关键点。 性能调优方面,需要考虑内存分配、写入优化(如批量写入和WAL设置),还有读优化如缓存和布隆过滤器。监控工具如HBase Metrics和第三方集成Prometheus、Grafana也需要提及。 可能用户没直接提到但需要包括的还有安全配置,比如Kerberos认证,以及版本升级的注意事项。此外,常见问题排查,如RegionServer崩溃或ZooKeeper连接问题,也应该涵盖。 生成相关问题的时候,需要覆盖配置、操作、维护、调优和监控等方面的问题,帮助用户进一步深入学习。例如,如何调整HBase的JVM参数,或者如何通过HBase Shell管理表结构。</think>### HBase配置及操作指南 #### 一、基础配置 1. **操作系统配置** - **文件描述符与进程数**:需为运行HBase的用户调整`nofile`(文件描述符)和`nproc`(进程数),避免资源不足。例如,在`/etc/security/limits.conf`中添加: ``` hbase_user hard nofile 65535 hbase_user soft nofile 65535 ``` 通过检查HBase日志首行可确认实际运行用户[^1]。 2. **HBase核心配置** - **`hbase-site.xml`**:核心配置文件,需设置以下参数: ```xml <property> <name>hbase.rootdir</name> <value>hdfs://namenode:8020/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>zk-node1,zk-node2,zk-node3</value> </property> ``` - **`hbase-env.sh`**:配置JVM参数,如堆内存(`HBASE_HEAPSIZE=4G`)和垃圾回收策略。 3. **RegionServer与Master配置** - **RegionServer线程数**:调整`hbase.regionserver.handler.count`(默认30)以优化并发请求。 - **Master内存分配**:通过`HBASE_MASTER_OPTS`配置独立JVM参数。 --- #### 二、核心操作 1. **HBase Shell基础命令** - **表操作**: ```shell create 'test_table', 'cf1', 'cf2' # 创建表 describe 'test_table' # 查看表结构 disable/enable 'test_table' # 禁用/启用表 ``` - **数据操作**: ```shell put 'test_table', 'row1', 'cf1:name', 'value' # 插入数据 scan 'test_table' # 全表扫描 get 'test_table', 'row1' # 获取单行 ``` 2. **组管理操作** 通过`get_server_rsgroup`命令查询RegionServer所属的组[^2]: ```shell hbase(main):003:0> get_server_rsgroup 'bj01-tst-hadoop08.vivo.lan:60020' ``` 3. **API操作(Java示例)** ```java Configuration config = HBaseConfiguration.create(); try (Connection conn = ConnectionFactory.createConnection(config)) { Table table = conn.getTable(TableName.valueOf("test_table")); Put put = new Put(Bytes.toBytes("row1")); put.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("name"), Bytes.toBytes("value")); table.put(put); } ``` --- #### 三、运维与监控 1. **HBCK健康检查** - 访问Master UI的`/hbck.jsp`页面查看HBCK报告,检测`hbase:meta`中的区域重叠或漏洞[^3]。 - 定期运行`hbase hbck -details`命令手动检查。 2. **关键维护操作** - **合并Region**:通过`major_compact`命令减少碎片。 - **负载均衡**:使用`balance_switch true`启用自动均衡。 - **备份与恢复**:结合`Export`/`Import`工具或Snapshots实现。 3. **性能调优** - **写入优化**:启用批量写入(`setAutoFlush(false)`)和调整WAL(Write-Ahead Log)策略。 - **读取优化**:配置BlockCache和Bloom Filter减少磁盘IO。 --- #### 四、监控工具 1. **内置监控** - **Master UI**:通过`http://master:16010`查看集群状态、表分布及任务进度。 - **Metrics**:集成Hadoop Metrics2,导出JVM/Region负载等数据。 2. **第三方集成** - **Prometheus+Grafana**:通过`HBase Exporter`采集指标并可视化。 - **ELK日志分析**:集中存储和分析HBase日志。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值