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

Ambari Metrics接收数据问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

ambari-metrics上报数据存储

  • 场景描述
    ambari集群:ab-01;ab-02;ab-03;ab-04;ab-05;

数据库

  • 使用HBase存储,phoenix作为sql引擎,对上报数据进行存储。
  • 数据属性:Snappy压缩、只有一个Version的数据、多个分不同时间级别的表存储相同的数据、使用布隆过滤器、block大小为64KB、使用缓存存储block。

存储模式

  • 本地模式
    使用HBase的本地存储模式。默认模式。

  • 分布式模式
    修改Advanced ams-hbase-site:将hbase.rootdir修改为hdfs://<namenode>:<port>/user/ams/hbase;将dfs.client.read.shortcircuit改为true

  • 启动
    HBASE_CONF_DIR="/etc/ams-hbase/conf" hbase shell

表属性

phoenix表

**METRIC_RECORD:**用于记录每个机器上收集的每个 Metrics属性,1天后清理
**METRIC_RECORD_MINUTE:**聚合统计每个机器上的Metrics属性,1周后清理
**METRIC_RECORD_HOURLY:**聚合统计每个机器上的Metrics属性,30天后清理 **METRIC_RECORD_DAILY:**聚合统计每个机器上的Metrics属性,1年后清理
METRIC_AGGREGATE: 聚合统计所有机器上的Metrics属性(集群),1周后清理
**METRIC_AGGREGATE_MINUTE:**聚合统计所有机器上的Metrics属性(集群),30天后清理
**METRIC_AGGREGATE_HOURLY:**聚合统计所有机器上的Metrics属性(集群),1年后清理
**METRIC_AGGREGATE_DAILY:**聚合统计所有机器上的Metrics属性(集群),2年后清理

参照:
ambari数据表说明

metrics问题汇总

redis上报数据未存储

  • 场景: 使用ab-01作为数据收集端,向metrics-collector所在节点发送数据。

发送数据的脚本如下:

#!/bin/sh
url=http://$1:6188/ws/v1/timeline/metrics
while [ 1 ]
do
#A=$(redis-cli info | grep total_connections_received: | awk -F ':' '{print $2}')
#echo $A > abc.txt
#sed -i 's/\r//' abc.txt
#A=$(head -1 abc.txt)
millon_time=$(( $(date +%s%N) / 1000000 ))
A=`expr $RANDOM % 10`
json="{
 \"metrics\": [
 {
 \"metricname\": \"$2\",
 \"appid\": \"$3\",
 \"hostname\": \"localhost\",
 \"timestamp\": ${millon_time},
 \"starttime\": ${millon_time},
 \"metrics\": {
 \"${millon_time}\": ${A}
 }
 }
 ]
}"
echo $json | tee -a /root/my_metric.log
curl -i -X POST -H "Content-Type: application/json" -d "${json}" ${url}
sleep 3
done
  • 结果: Ambari的界面上的redis无监控图表。

  • 问题排查

  1. app timeline server无法启动(修复后排除)。修复过程详情查看: app timeline server 启动问题
  2. 查询Redis的监控数据是否在HBase中存储(数据未存储);
  3. 调试后,发现由于**数据的发送方(ab-01)和接收方(ab-05)**时间差异较大导致metrics-collector将上报数据丢弃。
    远程调试Ambari Metrics System
  • 解决方法
  1. 暂时将ab-01的时间手动调至和ab-05相同的时间,发送数据成功。
  2. 根源解决:部署时间同步服务器。

转载于:https://my.oschina.net/u/3034870/blog/871891

相关文章:

  • reids 数据库学习
  • Android系统源码研究(一)
  • Node + FFmpeg 实现Canvas动画导出视频
  • 数据库架构设计思路
  • 前端学习 -- Css -- 文本标签
  • Android开发专业名词及工具概述
  • 斐波那契数列——摘自搜狗百科
  • linux磁盘管理命令
  • 数据挖掘之数据准备——丢失数据
  • 今天加入云溪社区啦
  • 框架中无效的列类型异常分析
  • 起床继续编程
  • Linux主流架构运维工作简单剖析
  • AndroidStudio打包apk,安装出现签名冲突--解决办法
  • 最大整数
  • 2017-09-12 前端日报
  • 2017前端实习生面试总结
  • Brief introduction of how to 'Call, Apply and Bind'
  • Git 使用集
  • Java Agent 学习笔记
  • Java方法详解
  • js数组之filter
  • react-native 安卓真机环境搭建
  • sessionStorage和localStorage
  • Windows Containers 大冒险: 容器网络
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 构建二叉树进行数值数组的去重及优化
  • 关于字符编码你应该知道的事情
  • 记一次用 NodeJs 实现模拟登录的思路
  • 跨域
  • 聊聊hikari连接池的leakDetectionThreshold
  • 写代码的正确姿势
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • Hibernate主键生成策略及选择
  • Semaphore
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​ubuntu下安装kvm虚拟机
  • # .NET Framework中使用命名管道进行进程间通信
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Java数据结构)ArrayList
  • (WSI分类)WSI分类文献小综述 2024
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (一)Linux+Windows下安装ffmpeg
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)用.Net的File控件上传文件的解决方案
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .dwp和.webpart的区别
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 命令行参数包含应用程序路径吗?