Попытка получить данные из DB2 в Hbase с помощью Sqoop очень медленная - PullRequest
0 голосов
/ 01 декабря 2018

Заранее спасибо.

Я пытался импортировать данные из DB2 в таблицу HBase, используя SQOOP, который занимает очень очень много времени, чтобы даже инициировать карту и уменьшить ее.Я могу видеть только карту 0 и уменьшить 0 все время.

Я могу поставить ту же команду в DB2, и результаты будут быстрее, чем я ожидал.Но когда я импортирую то же самое в HBASE.Принимать очень долго (10 часов).Создал образец данных в DB2 (150 записей) и попытался импортировать его в HBASE, по-прежнему занимая столько же времени.

sqoop import --connect jdbc:db2://{hostname}:50001/databasename --username user --password pass --hbase-create-table --hbase-table new_tbl --column-family abc --hbase-row-key=same  --query "select a,b,c,d,e concat(a,e) from table_name where \$CONDITIONS AND a>='2018-08-01 00:00:01' and b<='2018-08-01 00:00:02'"  -m 1

Попробовал отрегулировать все конфигурации

yarn.nodemanager.resource.memory-mb=116800
yarn.scheduler.minimum-allocation-mb=4096
mapreduce.map.memory.mb=4096
mapreduce.reduce.memory.mb=8192
mapreduce.map.java.opts=-Xmx3072m
mapreduce.reduce.java.opts=-Xmx6144m
yarn.nodemanager.vmem-pmem-ratio=2.1

В Sqoop Side я попытался настроить запрос, а также небольшие конфигурации. -M 4 создать некоторую несогласованность в записях.фильтр (временные метки (a, b)), все еще занимающий длительное время (10 часов)

Результаты теста производительности HBASE довольно хорошие.

        HBase Performance Evaluation
                Elapsed time in milliseconds=705914
                Row count=1048550
        File Input Format Counters
                Bytes Read=778810
        File Output Format Counters
                Bytes Written=618

real    1m29.968s
user    0m10.523s
sys     0m1.140s

1 Ответ

0 голосов
/ 01 декабря 2018

Трудно предложить, если вы не показываете пример данных и тип данных.Дополнительный маппер будет работать правильно и эффективно только тогда, когда у вас есть справедливое распределение записей среди мапперов.Если у вас есть первичный ключ, доступный в таблице, вы можете указать его как разделенный столбец, и средства отображения будут равномерно распределять рабочую нагрузку и начинать выборку фрагментов в сбалансированном режиме.Во время работы вы также можете увидеть распределение разделенного ключа и количество записей из самого журнала.

Если вашему кластеру не хватает памяти для ресурсов, это может занять больше времени, а иногда и долгое время находиться в режиме отправки.время, как YARN не может выделить память для его запуска.

Вместо того, чтобы пытаться использовать HBase, вы можете сначала попытаться сделать это с HDFS в качестве места хранения и посмотреть производительность, а также проверить сведения о задании, чтобы понять поведение MapReduce.

...