Hbase: сканирование с лимитом внезапно замедляется - PullRequest
0 голосов
/ 15 мая 2019

У меня есть 167 миллионов строк таблицы в hbase.Быстрое сканирование с лимитом, подобным следующему:

hbase(main):001:0> scan '<test_table>, LIMIT => 1

Обычно возвращается примерно через 0,1 сек.Как и пару дней назад, это самое быстрое сканирование занимает более 90 секунд, и мне нужна помощь, чтобы определить причину.Вот что я рассмотрел до сих пор:

  • Не все таблицы ведут себя так;некоторые таблицы одинакового размера остаются на 0,1 секунды для сканирования с ограничением 1. Другие демонстрируют поведение проблемы.
  • HMaster сообщает «0» Запросы для соответствующих таблиц на все 37 узлов данных в моем кластере.
  • Журналы hbase (/var/log/hbase/hbase-hbase-regionserver-.log) не содержат заметных ошибок.
  • Журналы 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.datanoSender.jS510) в org.apache.hadoop.hdfs.server.datanode.BlockSender.sendBlock (BlockSender.java:673) в org.apache.hadoop.hdfs.server.datanode.DataXceiver.readBlock (DataXceiver.java:338) в организации.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
  • Версия hbase - Версия 0.94.15-cdh4.7.0.

Любаяидеи как решить эту проблему?

...