当前位置: 首页 > news >正文

【大数据监控】Grafana、Spark、HDFS、YARN、Hbase指标性能监控安装部署详细文档

目录

  • Grafana
    • 简介
    • 下载软件包
    • 安装部署
    • 修改配置文件
    • 创建用户
    • 创建Systemd服务
    • 启动 Grafana
  • Spark应用监控 Graphite_exporter
  • HDFS 监控
  • YARN 监控
  • HBase 监控

Grafana

在这里插入图片描述

简介

Grafana 是一款开源的数据可视化工具,使用 Grafana 可以非常轻松的将数据转成图表(如下图)的展现形式来做到数据监控以及数据统计。

下载软件包

wget https://github.com/prometheus/prometheus/releases/download/v2.19.2/prometheus-2.19.2.linux-amd64.tar.gz

安装部署

解压

tar -xvzf grafana-enterprise-9.1.6.linux-arm64.tar.gzmv grafana-9.1.6 /data/apps/
cd /data/apps/grafana-9.1.6/conf
cp sample.ini grafana.ini

修改配置文件

vim grafana.ini[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
;data = /var/lib/grafana
data = /data/apps/grafana-9.1.6/data
logs = /data/apps/grafana-9.1.6/logs
plugins = /data/apps/grafana-9.1.6/plugins[log]mode = file
level = warn

创建用户

groupadd -g 9100 monitor
useradd -g 9100 -u 9100 -s /sbin/nologin -M monitor
mkdir data && mkdir logs && mkdir pluginschown -R monitor:monitor grafana-9.1.6

创建Systemd服务

vim /usr/lib/systemd/system/grafana.service[Unit]
Description=grafana service
After=network.target[Service]
User=monitor
Group=monitor
KillMode=control-group
Restart=on-failure
RestartSec=60
ExecStart=/data/apps/grafana-9.1.6/bin/grafana-server -config /data/apps/grafana-9.1.6/conf/grafana.ini -pidfile /data/apps/grafana-9.1.6/grafana.pid -homepath /data/apps/grafana-9.1.6[Install]
WantedBy=multi-user.target

启动 Grafana

systemctl daemon-reload
systemctl restart grafana.service
systemctl enable grafana.service
systemctl status grafana

Spark应用监控 Graphite_exporter

配置 mapping 文件

cd /usr/local/graphite_exporter
vim graphite_exporter_mapping
graphite_exportergraphite_exportengs:
- match: '*.*.executor.filesystem.*.*'name: spark_app_filesystem_usagelabels:application: $1executor_id: $2fs_type: $3qty: $4
- match: '*.*.jvm.*.*'name: spark_app_jvm_memory_usagelabels:application: $1executor_id: $2mem_type: $3qty: $4
- match: '*.*.executor.jvmGCTime.count'name: spark_app_jvm_gcTime_countlabels:application: $1executor_id: $2
- match: '*.*.jvm.pools.*.*'name: spark_app_jvm_memory_poolslabels:application: $1executor_id: $2mem_type: $3qty: $4
- match: '*.*.executor.threadpool.*'name: spark_app_executor_taskslabels:application: $1executor_id: $2qty: $3
- match: '*.*.BlockManager.*.*'name: spark_app_block_managerlabels:application: $1executor_id: $2type: $3qty: $4
- match: '*.*.DAGScheduler.*.*'name: spark_app_dag_schedulerlabels:application: $1executor_id: $2type: $3qty: $4
- match: '*.*.CodeGenerator.*.*'name: spark_app_code_generatorlabels:application: $1executor_id: $2type: $3qty: $4
- match: '*.*.HiveExternalCatalog.*.*'name: spark_app_hive_external_cataloglabels:application: $1executor_id: $2type: $3qty: $4
- match: '*.*.*.StreamingMetrics.*.*'name: spark_app_streaming_metricslabels:application: $1executor_id: $2app_name: $3type: $4qty: $5

HDFS 监控

namenode.yaml

---
startDelaySeconds: 0
hostPort: localhost:1234 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

datanode.yaml

---
startDelaySeconds: 0
hostPort: localhost:1244 #master为本机IP(一般可设置为localhost);1244为想设置的jmx端口(可设置为未被占用的端口)
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

配置 hadoop-env.sh

export HADOOP_NAMENODE_JMX_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=1234 -javaagent:/jmx_prometheus_javaagent-0.8.jar=9211:/namenode.yaml"export HADOOP_DATANODE_JMX_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=1244 -javaagent:/jmx_prometheus_javaagent-0.8.jar=9212:/datanode.yaml"

YARN 监控

yarn.yaml

---
startDelaySeconds: 0
hostPort: localhost:2111 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

配置 yarn-env.sh

export YARN_JMX_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=2111 -javaagent:/jmx_prometheus_javaagent-0.8.jar=9323:/yarn.yaml"

HBase 监控

master.yaml

---
startDelaySeconds: 0
hostPort: IP:1254 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口(可设
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

regionserver.yaml

---
startDelaySeconds: 0
hostPort: IP:1255 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口
#jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

配置 hbase-env.sh

HBASE_M_JMX_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmx    remote.port=1254 -javaagent:/jmx_prometheus_javaagent-0.8.jar=9523:/hbasem.yaml"
#======================================= prometheus jmx export start===================================
HBASE_JMX_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxre    mote.port=1255 -javaagent:/jmx_prometheus_javaagent-0.8.jar=9522:/hbase.yaml"
#======================================= prometheus jmx export end ===================================

希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您

http://www.lryc.cn/news/28910.html

相关文章:

  • 面试题---CSS
  • 【C++】vector
  • RocketMQ安装
  • Spring——什么是IOC?
  • 力扣(LeetCode)430. 扁平化多级双向链表(2023.03.04)
  • 条款13:优先考虑const_iterator而非iterator
  • 23考研 长安大学846计算机考研复试《数据库》
  • Android 9.0 系统去掉省电模式
  • 3 mmmmm
  • nvidia Jetson nano Linux内核编译
  • 理想汽车2023年销量冲击30万辆有戏吗?
  • 借助CatGPT让turtlesim小乌龟画曲线
  • Java面试总结(四)
  • 强强联合,再强的英伟达NVIDIA也不落俗套
  • maven使用心得
  • 【算法题】1958. 检查操作是否合法
  • 十一、GoF之代理模式
  • MySQL5.6和JVM(1.6)调优
  • 【汇编】三、寄存器(一只 Assember 的成长史)
  • TFT通信协议解析与应用
  • python 操作word库docx 增强接口
  • ARM uboot 源码分析9 - uboot的硬件驱动部分
  • Mybatis动态sql语句foreach中拼接正则表达式字符串注意事项
  • JVM内置锁synchronized关键字详解
  • 【2021.12.25】xv6系统入门学习
  • Linux内核4.14版本——drm框架分析(4)——crtc分析
  • 用原生js手写分页功能
  • CornerNet介绍
  • 【SpringBoot】日志使用
  • 关于slice扩容性能损耗的探究