Hadoop集群出现的日志分析

HBase异常日志——Slow ReadProcessor

今天在翻看集群日志发现出现了比较多的警告日志,具体日志信息如下:

2020-06-28 21:46:53,769 WARN  [ResponseProcessor for block BP-213784990-192.168.69.71-1571291895338:blk_1081938655_8197927] hdfs.DFSClient: Slow ReadProcessor read fields took 127841ms (threshold=30000ms); ack: seqno: 4 reply: SUCCESS reply: SUCCESS reply: SUCCESS downstreamAckTimeNanos: 2520459 flag: 0 flag: 0 flag: 0, targets: [DatanodeInfoWithStorage[192.168.69.71:50010,DS-ee07bf58-7041-4cf9-996a-564371406acb,DISK], DatanodeInfoWithStorage[192.168.69.72:50010,DS-954cd3c5-4efb-45e6-bea8-85284338d1e4,DISK], DatanodeInfoWithStorage[192.168.69.73:50010,DS-7495e832-f9ad-4532-94d6-ae5ff9b9d9bc,DISK]]

根据上面日志可以发现,警告信息有很明显的提示“hdfs.DFSClient”。HBase本身就是基于HDFS实现数据文件的存储,因此这个警告虽然出现在HBase的RegionServer日志中但是问题是出现在HDFS上。通过分析HDFS上DN上的日志信息可以找到比较多Slow BlockReceiver/Slow flushOrSync等等字眼。一般情况下可能就是网络或者磁盘存在瓶颈或者出现了问题,当然也有可能是某个DataNode节点出现了问题导致整个集群出现了这类警告。

网络可能存在问题:
Slow BlockReceiver write packet to mirror took / Slow PacketResponder send ack to upstream took

磁盘可能存在问题:
Slow manageWriterOsCache took / Slow BlockReceiver write data to disk cost / Slow flushOrSync took

具体的可以通过命令:

egrep -o "Slow.*?(took|cost)"  DataNodeLogPath | sort | uniq -c

进行统计分析,大概就可以得出当前HDFS上到底是磁盘还是网络存在问题。当然也可以通过iotop、nload和top等工具查看当前机器负载、IO、网络情况进而分析。

HBase日志——InvalidToken

具体日志如下:

 2020-06-28 17:46:34,768 INFO  [RpcServer.FifoWFPBQ.default.handler=107,queue=2,port=16020] hdfs.DFSClient: Access token was invalid when connecting to /192.168.69.71:50010 : org.apache.hadoop.security.token.SecretManager$InvalidToken: access control error while attempting to set up short-circuit access to /apps/hbase/data/data/default/OBSV_SURF_AWOS_POINT_ELE/f503b07a80b8847be28a4728ee80cedf/0/ce5bfc46cdc34523b91375603d6fda1f

2020-06-28 17:46:34,766 INFO  [RpcServer.FifoWFPBQ.default.handler=107,queue=2,port=16020] shortcircuit.ShortCircuitCache: ShortCircuitCache(0x8bc36df): could not load 1081613847_BP-213784990-192.168.69.71-1571291895338 due to InvalidToken [exception.org.apache.hadoop.security.token.SecretManager$InvalidToken](http://exception.org.apache.hadoop.security.token.secretmanager%24invalidtoken/): access control error while attempting to set up short-circuit access to /apps/hbase/data/data/default/OBSV_SURF_AWOS_POINT_ELE/f503b07a80b8847be28a4728ee80cedf/0/ce5bfc46cdc34523b91375603d6fda1f        at org.apache.hadoop.hdfs.BlockReaderFactory.requestFileDescriptors(BlockReaderFactory.java:589)        at org.apache.hadoop.hdfs.BlockReaderFactory.createShortCircuitReplicaInfo(BlockReaderFactory.java:488)        at org.apache.hadoop.hdfs.shortcircuit.ShortCircuitCache.create(ShortCircuitCache.java:784)        at org.apache.hadoop.hdfs.shortcircuit.ShortCircuitCache.fetchOrCreate(ShortCircuitCache.java:718)        at org.apache.hadoop.hdfs.BlockReaderFactory.getBlockReaderLocal(BlockReaderFactory.java:422)        at org.apache.hadoop.hdfs.BlockReaderFactory.build(BlockReaderFactory.java:333)        at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:669)        at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:888)        at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:945)        at java.io.DataInputStream.read(DataInputStream.java:149)        at org.apache.hadoop.hbase.io.hfile.HFileBlock.readWithExtra(HFileBlock.java:683)        at org.apache.hadoop.hbase.io.hfile.HFileBlock$AbstractFSReader.readAtOffset(HFileBlock.java:1428)        at org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.readBlockDataInternal(HFileBlock.java:1642)        at org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.readBlockData(HFileBlock.java:1515)        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:439)        at org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:269)        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:636)        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:586)        at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:264)        at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:170)        at org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:363)        at org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:217)        at org.apache.hadoop.hbase.regionserver.HStore.createScanner(HStore.java:2136)        at org.apache.hadoop.hbase.regionserver.HStore.getScanner(HStore.java:2124)        at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:5707)        at org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:2716)        at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2702)        at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2684)        at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2401)        at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32385)

这个日志不是警告日志只是一个Info日志,但是在RegionServer中出现频率也比较高。本菜鸡又是捣腾HDFS short-circuit配置又是追源码,搞了半天还是无能为力。所幸在cloudera社区找到了比较靠谱的答案。国外大佬对此回答是:

this looks scarier than it is. This is an HDFS client-level exception which is expected and you should never see happening. The client will automatically fetch a new token when this happens. It is a bug that it is logged for you to see. This is not a problem nor anything you need to fix.

其实翻译过来的意思就是这个日志看起来吓人,但是这其实不是一个问题。这个日志就是记录给你看的,token过期了会自动重新获取了。这个不是问题不需要你去解决。iヽ(o_ _)o摔倒

Phoenix客户端日志-AsyncProcess

具体输出日志信息如下:

2020-06-29 19:00:35 [pool-7-thread-1] [INFO ] AsyncProcess[1566 line] - #1, waiting for 10000  actions to finish
2020-06-29 19:02:23 [pool-7-thread-1] [INFO ] AsyncProcess[1566 line] - #1, waiting for 10000  actions to finish
2020-06-29 19:02:43 [pool-7-thread-1] [INFO ] AsyncProcess[1566 line] - #1, waiting for 10000  actions to finish
2020-06-29 19:03:38 [pool-7-thread-1] [INFO ] AsyncProcess[1566 line] - #1, waiting for 10000  actions to finish

这个输出实际上是HBase Client端输出的,只是本菜这边采用的是Phoenix。出现大量这个日志其实就是说明RegionServer处理不过来,当前的数据写入的速度快于服务器处理的速度。这可能是因为表正在执行split/compaction或者gc导致的,这个具体的优化需要根据业务和服务端出现的问题进一步定位。

末尾

这篇文章主要是记录今天在集群看见的几个日志。感兴趣的欢迎到公众号“喜欢打游戏的摸鱼怪”留言。iヾ(o◕∀◕)ノヾ

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339