导出 CDH 中各组件(HDFS、Hive、Impala、Kafka、Kudu、YARN和Zookeeper)指标到 Prometheus

本文主要是介绍导出 CDH 中各组件(HDFS、Hive、Impala、Kafka、Kudu、YARN和Zookeeper)指标到 Prometheus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、提取准备
    • 1. 下载jmx
    • 2. 创建规则文件
  • 二、HDFS指标提取
    • 1. namenode指标提取
    • 2. datanode指标提取
  • 二、Hive指标提取
    • 1. Hive Metastore Server 指标提取
    • 2. HiveServer2 指标提取
  • 三、Impala 指标提取
    • 1. Impala Catalog Server 指标提取
    • 2. Impala Daemon 指标提取
  • 四、Kafka 指标提取
    • 1. Kafka Broker 指标提取
    • 2. Kafka MirrorMaker 指标提取
  • 五、KUDU指标提取
    • 1. Tablet Server 指标提取
      • 1.1 下载和解压
      • 1.2 修改配置文件
      • 1.3 启动和停止
        • 1.3.1 启动
        • 1.3.2 停止
        • 1.3.3 测试
    • 2. Master 指标提取
      • 2.1 创建配置文件和启动脚本
      • 2.2 修改配置文件
      • 2.3 修改启动脚本
      • 2.4 启动和停止
        • 2.4.1 启动
        • 2.4.2 停止
    • 3. Grafana模版下载
  • 六、YARN 指标提取
    • 1. ResourceManager 指标提取
    • 2. NodeManager 指标提取
  • 七、Zookeeper 指标提取
    • 1. Server 指标提取
  • 总结


前言

本教程介绍了如何提取大数据集群中不同组件的指标信息,涵盖了HDFS、Hive、Impala、Kafka、Kudu、YARN和Zookeeper等组件,通过配置环境变量以启用JMX监控,并展示了具体操作步骤和配置方法。


一、提取准备

1. 下载jmx

mkdir -p /opt/soft/jmx/config
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar -P /opt/soft/jmx/config/

2. 创建规则文件

echo "lowercaseOutputName: true
lowercaseOutputLabelNames: true
rules:- pattern: '.*'" > /opt/soft/jmx/config/common_conf.yml

二、HDFS指标提取

1. namenode指标提取

在Cloudera Manager的UI页面打开HDFS集群,点击配置,找到NameNode 环境高级配置代码段(安全阀),添加如下配置:

HADOOP_NAMENODE_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=2870 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10870:/opt/soft/jmx/config/common_conf.yml

2. datanode指标提取

在Cloudera Manager的UI页面打开HDFS集群,点击配置,找到DataNode 环境高级配置代码段(安全阀),添加如下配置:

HADOOP_DATANODE_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=2864 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10864:/opt/soft/jmx/config/common_conf.yml

配置之后需要重启HDFS服务使配置生效。


二、Hive指标提取

1. Hive Metastore Server 指标提取

在Cloudera Manager的UI页面打开Hive集群,点击配置,找到Hive Metastore Server 环境高级配置代码段(安全阀),添加如下配置:

HADOOP_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2083 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10083:/opt/soft/jmx/config/common_conf.yml

2. HiveServer2 指标提取

在Cloudera Manager的UI页面打开Hive集群,点击配置,找到HiveServer2 环境高级配置代码段(安全阀),添加如下配置:

HADOOP_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2002 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=11002:/opt/soft/jmx/config/common_conf.yml

配置之后需要重启Hive服务使配置生效。


三、Impala 指标提取

1. Impala Catalog Server 指标提取

在Cloudera Manager的UI页面打开Impala集群,点击配置,找到Impala Catalog Server 环境高级配置代码段(安全阀),添加如下配置:

JAVA_TOOL_OPTIONS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2020 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=26020:/opt/soft/jmx/config/common_conf.yml

2. Impala Daemon 指标提取

在Cloudera Manager的UI页面打开Impala集群,点击配置,找到Impala Daemon 环境高级配置代码段(安全阀),添加如下配置:

JAVA_TOOL_OPTIONS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2000 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=26000:/opt/soft/jmx/config/common_conf.yml

配置之后需要重启Impala服务使配置生效。

参考链接:https://cwiki.apache.org/confluence/display/IMPALA/How+to+do+JVM+Profiling+for+Impala


四、Kafka 指标提取

1. Kafka Broker 指标提取

在Cloudera Manager的UI页面打开Kafka集群,点击配置,找到Kafka Broker 环境高级配置代码段(安全阀),添加如下配置:

KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2092 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=10092:/opt/soft/jmx/config/common_conf.yml

2. Kafka MirrorMaker 指标提取

在Cloudera Manager的UI页面打开Kafka集群,点击配置,找到Kafka MirrorMaker 环境高级配置代码段(安全阀),添加如下配置:

KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2192 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=20092:/opt/soft/jmx/config/common_conf.yml

配置之后需要重启Kafka服务使配置生效。

参考链接:https://docs.confluent.io/platform/current/kafka/monitoring.html


五、KUDU指标提取

1. Tablet Server 指标提取

1.1 下载和解压

wget https://github.com/leeeizhang/Prometheus-Kudu-Exporter/releases/download/v0.2.0/prometheus-kudu-exporter-binary-0.2.0.tar.gz -P /tmp
tar -zxvf /tmp/prometheus-kudu-exporter-binary-0.2.0.tar.gz -C /opt/soft/jmx/config/

1.2 修改配置文件

vim /opt/soft/jmx/config/prometheus-kudu-exporter/conf/kudu-exporter.yml

内容如下所示。

# Fetcher配置
# Kudu服务器的端口应该是8051,Kudu平板服务器应该是8050
prom.kudu.fetcher.classname: io.prometheus.kudu.fetcher.KuduMetricRestFetcher
prom.kudu.fetcher.kudu-nodes: [ host_ip:8050 ]
prom.kudu.fetcher.interval: 10000#单机报表配置
#启动后请访问http://localhost:9055/metrics查看kudu-export状态
prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricLocalReporter
prom.kudu.reporter.local.port: 9050# Push-Gateway 报表配置
# Push-Gateway应该在运行kudu-export之前安装
#prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricPushGatewayReporter
#prom.kudu.reporter.pushgateway.host: 127.0.0.1:9091
#prom.kudu.reporter.pushgateway.interval: 10000

1.3 启动和停止

1.3.1 启动
nohup /opt/soft/jmx/config/prometheus-kudu-exporter/bin/kudu-exporter.sh >/tmp/kudu-exporter.log 2>&1 &
1.3.2 停止

查看进程PID,然后停止对应进程。

ps -ef | grep prometheus-kudu-exporter
kill <PID>
1.3.3 测试
curl http://127.0.0.1:9050/metrics

2. Master 指标提取

2.1 创建配置文件和启动脚本

cd /opt/soft/jmx/config/prometheus-kudu-exporter/conf
cp kudu-exporter.yml kudu-exporter-master.yml
cd /opt/soft/jmx/config/prometheus-kudu-exporter/bin
cp kudu-exporter.sh kudu-exporter-master.sh

2.2 修改配置文件

cd /opt/soft/jmx/config/prometheus-kudu-exporter/conf
vim kudu-exporter-master.yml

内容如下所示。

# Fetcher配置
# Kudu服务器的端口应该是8051,Kudu平板服务器应该是8050
prom.kudu.fetcher.classname: io.prometheus.kudu.fetcher.KuduMetricRestFetcher
prom.kudu.fetcher.kudu-nodes: [ host_ip:8051 ]
prom.kudu.fetcher.interval: 10000#单机报表配置
#启动后请访问http://localhost:9055/metrics查看kudu-export状态
prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricLocalReporter
prom.kudu.reporter.local.port: 9051# Push-Gateway 报表配置
# Push-Gateway应该在运行kudu-export之前安装
#prom.kudu.reporter.classname: io.prometheus.kudu.reporter.KuduMetricPushGatewayReporter
#prom.kudu.reporter.pushgateway.host: 127.0.0.1:9091
#prom.kudu.reporter.pushgateway.interval: 10000

2.3 修改启动脚本

cd /opt/soft/jmx/config/prometheus-kudu-exporter/bin
vim kudu-exporter-master.sh

把启动脚本中PROMETHEUS_KUDU_EXPORTER_CONF="$PROMETHEUS_KUDU_EXPORTER_CONF_DIR"/kudu-exporter.yml修改为PROMETHEUS_KUDU_EXPORTER_CONF="$PROMETHEUS_KUDU_EXPORTER_CONF_DIR"/kudu-exporter-master.yml

2.4 启动和停止

2.4.1 启动
nohup /opt/soft/jmx/config/prometheus-kudu-exporter/bin/kudu-exporter-master.sh >/tmp/kudu-exporter-master.log 2>&1 &
2.4.2 停止

查看进程PID,然后停止对应进程。

ps -ef | grep prometheus-kudu-exporter
kill <PID>

3. Grafana模版下载

点击下载KUDU指标JSON模版


六、YARN 指标提取

1. ResourceManager 指标提取

在Cloudera Manager的UI页面打开Kafka集群,点击配置,找到ResourceManager 环境高级配置代码段(安全阀),添加如下配置:

YARN_RESOURCEMANAGER_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2088 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=9088:/opt/soft/jmx/config/common_conf.yml

2. NodeManager 指标提取

在Cloudera Manager的UI页面打开Kafka集群,点击配置,找到NodeManager 环境高级配置代码段(安全阀),添加如下配置:

YARN_NODEMANAGER_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=2042 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=9042:/opt/soft/jmx/config/common_conf.yml

配置之后需要重启YARN服务使配置生效。

参考链接:https://community.cloudera.com/t5/Community-Articles/Enable-JMX-metrics-on-hadoop-using-jmxterm/ta-p/247783


七、Zookeeper 指标提取

1. Server 指标提取

在Cloudera Manager的UI页面打开Kafka集群,点击配置,找到Server 环境高级配置代码段(安全阀),添加如下配置:

ZOOKEEPER_SERVER_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9010 -javaagent:/opt/soft/jmx/config/jmx_prometheus_javaagent-0.18.0.jar=3181:/opt/soft/jmx/config/common_conf.yml

总结

本教程详细介绍了如何使用JMX Prometheus Exporter工具来提取各个大数据组件的指标信息,并将其暴露给Prometheus进行监控。通过学习本教程,您可以轻松设置并收集这些指标数据,并利用可视化工具展示和分析它们。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

这篇关于导出 CDH 中各组件(HDFS、Hive、Impala、Kafka、Kudu、YARN和Zookeeper)指标到 Prometheus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957973

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

Java导出Excel动态表头的示例详解

《Java导出Excel动态表头的示例详解》这篇文章主要为大家详细介绍了Java导出Excel动态表头的相关知识,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录前言一、效果展示二、代码实现1.固定头实体类2.动态头实现3.导出动态头前言本文只记录大致思路以及做法,代码不进

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Kafka拦截器的神奇操作方法

《Kafka拦截器的神奇操作方法》Kafka拦截器是一种强大的机制,用于在消息发送和接收过程中插入自定义逻辑,它们可以用于消息定制、日志记录、监控、业务逻辑集成、性能统计和异常处理等,本文介绍Kafk... 目录前言拦截器的基本概念Kafka 拦截器的定义和基本原理:拦截器是 Kafka 消息传递的不可或缺

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da