我在hbase中有一个1.67亿行表。快速扫描的限制如下:
hbase(main):001:0> scan '<test_table>, LIMIT => 1
通常在大约0.1秒内返回。直到几天前,同样的快速扫描也需要90秒钟以上的时间,我需要帮助确定原因。到目前为止,这是我看过的东西:
hdfs日志确实存在错误,尽管我不确定其相关性(hadoop-hdfs-datanode-.log) : 2019-05-15 09:43:28,594错误org.apache.hadoop.hdfs.server.datanode.DataNode::50010:DataXceiver错误处理READ_BLOCK操作src::50041 dest:/:50010 java.net.SocketTimeoutException:480000毫秒等待通道准备写入时超时。 ch:java.nio.channels.SocketChannel [已连接本地= /:50010 远程= /:50041] 在org.apache.hadoop.net.SocketIOWithTimeout.waitForIO(SocketIOWithTimeout.java:247) 在org.apache.hadoop.net.SocketOutputStream.waitForWritable(SocketOutputStream.java:166) 在org.apache.hadoop.net.SocketOutputStream.transferToFully(SocketOutputStream.java:214) 在org.apache.hadoop.hdfs.server.datanode.BlockSender.sendPacket(BlockSender.java:510) 在org.apache.hadoop.hdfs.server.datanode.BlockSender.sendBlock(BlockSender.java:673) 在org.apache.hadoop.hdfs.server.datanode.DataXceiver.readBlock(DataXceiver.java:338) 在org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opReadBlock(Receiver.java:92) 在org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:64) 在org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:221) 在java.lang.Thread.run(Thread.java:745)
hbck
重新整理干净,不一致0,并且该表联机且可用。
对单个区域服务器进行现场检查,我看不到负载,操作系统或硬件问题,这是我运行的一些命令:
iostat -xm 4
avg-cpu: %user %nice %system %iowait %steal %idle
3.20 0.57 1.04 2.96 0.00 92.23
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 19.75 0.00 2.75 0.00 0.09 65.45 0.00 0.00 0.00 0.00 0.00 0.00
sdc 0.00 12.00 17.75 0.75 1.31 0.05 150.49 0.28 15.32 15.89 2.00 5.99 11.07
sdb 0.00 0.00 20.75 82.50 1.20 19.27 406.12 10.52 101.88 20.01 122.47 4.13 42.60
sdd 0.00 7.50 39.50 0.75 5.39 0.03 275.98 0.40 10.00 10.19 0.00 4.12 16.60
sde 0.00 0.00 44.75 35.00 7.97 7.83 405.64 3.20 11.13 8.08 15.04 1.84 14.68
sdf 0.00 8.00 7.75 94.25 0.45 17.13 353.08 5.58 54.63 61.58 54.06 1.06 10.82
sdg 0.00 5.75 15.75 0.50 0.73 0.02 95.38 0.10 6.23 6.41 0.50 3.89 6.32
sdh 0.25 6.50 130.00 63.00 12.27 15.15 290.96 11.68 60.43 10.07 164.36 2.94 56.67
sdi 0.00 8.00 15.75 1.00 1.45 0.04 181.97 0.09 5.66 6.02 0.00 4.90 8.20
sdj 0.00 6.50 30.25 0.75 2.09 0.03 140.26 0.19 6.13 6.17 4.67 2.13 6.60
sdk 0.00 4.25 5.50 0.50 0.38 0.02 136.67 0.04 5.96 6.45 0.50 5.33 3.20
sdl 0.00 0.00 78.75 71.75 14.64 17.24 433.77 7.46 49.60 16.97 85.41 1.90 28.60
sdm 0.00 0.00 31.50 0.25 1.73 0.00 111.81 0.34 10.59 10.67 1.00 6.87 21.80
$ top -M
top - 09:51:14 up 220 days, 17:25, 1 user, load average: 6.19, 5.70, 5.53
Tasks: 1039 total, 2 running, 1036 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.5%us, 1.0%sy, 0.9%ni, 92.3%id, 1.4%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 503.498G total, 498.871G used, 4738.371M free, 2252.797M buffers
Swap: 2046.996M total, 0.000k used, 2046.996M free, 442.170G cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20428 hbase 20 0 16.8g 16g 18m S 307.4 3.2 6390:11 java
22288 root 39 19 812m 691m 11m R 78.7 0.1 2375:18 clamscan
16490 mapred 20 0 1896m 596m 23m S 52.0 0.1 0:22.89 java
有什么办法解决此问题吗?