文档章节

记一次处理bug经历

小黑放大
 小黑放大
发布于 2016/01/08 15:07
字数 890
阅读 69
收藏 1

    这次问题设计组件稍复杂,这里大致说一下,我是做过车信息查询的。负责大数据模块,有另外一个组专门负责卡口,数据是由他们从各卡口抽取,然后插入到hbase中。再通过协处理器,将数据在写进hbase之前发送到AMQ消息队列,然后再消费建立solr索引,架构基本就是这样的。

    基于这个,在元旦前后,数据出现点小问题。在元旦前高速卡口上的数据都是可以通过solr查询到的,而元旦之后的数据无法查询到的。当时发现问题时我们自信的认为肯定是抽数据那块出现问题了,后来经查,高速卡口的数据确实抽取到数据了。然后我们逐个组件查找问题,首先我们从hbase开始。由于抽数据那边不确却的知道具体是那些数据丢失,只知道卡口有个编号这些编号都属于高速上的,给我们查询带来一些不便。我首先想到一个简便的方法查询,就是通过hive建一个外部表然后映射到hbase中我需要查询的表,这里可以选择新的只用映射几个我需要知道的字段。

    映射语句如下:

CREATE EXTERNAL TABLE xx(
rowkey string, 
aa string, 
bb string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "
:key,
cf:aa,
cf:bb")
TBLPROPERTIES("hbase.table.name" = "table");

    然后,我们就可以通hive很容易就查出我们需要的数据。

    在hbase这确实查到有高速卡口的数据。然后我们有想到,消费AMQ中数据的程序是我们自己写的,可不可能是在消费的时候出现问题。经查看我们消费程序的日志,没有异常日志。为了确认不是在消费这个节点上出现问题,我现场在代码中加入一个条件,如果遇到高速卡口的数据就日志打印出来。重启消费程序后,验证结果是始终没有高速卡口的数据出现。

    至此基本把问题缩小到协处理器和AMQ上。当时当时负责协处理器的同事当时不在,一时半会也无法通过代码验证。然后只有硬着头皮先去查看协处理器的日志,这一看日志,果真发现有问题,发现我们RS有一节点上的日志中有协处理器的几条日志,日志是我们自己定义的,大致意思就是协处理器在region上没有挂载成功。问题是找到了,当时该如何解决。继续在日志里面查找,发现有报找不到类的异常,缺少AMQ的jar包,因为协处理器中是把数据发送到AMQ的,所以需要AMQ相关的包连接AMQ。然后我们添加上AMQ相关包,重启该节点上的RegionServer,OK了,solr中能查到高速卡口的数据。

    至此问题解决了,通过这次查找问题,一个是经验积累。另一方面也明白了,规范的重要性,之所有出现这样的情况时因为,元旦前添加了个节点,也就是出问题的节点。我们有添加节点的文档,但是很零散。一旦有遗漏就是给自己挖了一大坑,所以把流程规范是不可或缺的。



© 著作权归作者所有

小黑放大
粉丝 5
博文 20
码字总数 13257
作品 0
武汉
程序员
私信 提问
delbug 云端BUG管理平台,简单、易用、免费,改善程序员们的工作方式。

delbug 云端BUG管理平台,简单、易用、免费,改善程序员们的工作方式。 欢迎大家登陆http://www.delbug.cn 在写这篇文章的时候,我的脑海中呈现出过去10年中,项目研发中遇到BUG的各种无奈。...

天道酬请
2017/05/15
0
0
记一次寻找Bug的经历-重新理解javascript原型和程序员瓶颈

记一次寻找Bug的经历 今天下午的时候,同事说发现了一个问题.Ext4做好页面,重新单击菜单动态加载一次,树就消失了.于是,我帮忙看了一下,一开始没认为是什么大问题.但是越调发现越不对.到快下班...

架构梦想
2014/04/04
109
0
90后,互联网创业路上的我。

深圳夜景.jpg 文章开头,我简单介绍下我自己吧。2015年毕业于一个既不是“985”也不是“211”的普通大学,二本。大学的时候,兼职做过很多工作,酒吧调酒师(学徒)、蛋糕店糕点师(学徒)、...

宵衣旰食
2017/11/09
0
0
记一次愚蠢的经历--String不可变性

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 记录一次在写代码时愚蠢的操作,本文涉及到的知识点:String不可变性 一、交代背景 ...

Java3y
07/23
62
0
解Bug之路-记一次中间件导致的慢SQL排查过程

解Bug之路-记一次中间件导致的慢SQL排查过程 前言 最近发现线上出现一个奇葩的问题,这问题让笔者定位了好长时间,期间排查问题的过程还是挺有意思的,正好博客也好久不更新了,就以此为素材...

无毁的湖光-Al
2018/12/27
1K
18

没有更多内容

加载失败,请刷新页面

加载更多

使用原生css+js+html实现打印A4纸张的功能页面

有时候我们需要使用html+css实现打印A4纸张的功能页面,以下代码实现 <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatibl......

b0cloud
17分钟前
2
0
读组件化之MGJRouter源码第二次的收获与思考

上一次我们写好了一个自定义的 路由类 ,然后我们来制作自己的 库 ,可以用来被 pod 引入 : 库的制作参考:https://www.jianshu.com/p/928d2ab053be 以下是我创建的: 利用上篇提到的 ,组件...

T型人才追梦者
19分钟前
1
0
spring cache、ehcache的使用及集成

项目中需要加缓存,故学习了 1、spring cache、ehcache的使用及集成 2、缓存的命中率等统计数据 一、spring cache 1、概述 Spring 3.1 引入了基于注解(annotation)的缓存(cache)技术 2、...

qkKing
20分钟前
2
0
Windows 10上源码编译Poco并编写httpserver和tcpserver | compile and install poco cpp library on windows

本文首发于个人博客https://kezunlin.me/post/9587bb47/,欢迎阅读! compile and install poco cpp library on windows Series guide to compile and install poco cpp library on windows g......

kezunlin
21分钟前
2
0
if-else-if-else与switch的区别

if-else-if-else: 适合分支较少 判断条件类型不单一 支持取 boolean 类型的所有运算 满足条件即停止对后续分支语句的执行 switch: 适合分支较多 判断条件类型单一,JDK 1.7 之前仅支持 in...

ConstXiong
21分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部