Улейная таблица улей занимает слишком много времени - PullRequest
0 голосов
/ 11 марта 2019

Мой запрос на улей Truncate table tablename занимает слишком много времени.Определение таблицы имеет следующие свойства:

CLUSTERED BY(field1) INTO 2 BUCKETS 
STORED AS ORC TBLPROPERTIES('transactional'='true');

Данные в таблице могут содержать только 20-30 тыс. Строк.

ACID транзакции разрешены.

set hive.support.concurrency=true;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.enforce.bucketing=true;
set hive.exec.dynamic.partition.mode=nostrict;
set hive.compactor.initiator.on=true;
set hive.compactor.worker.threads=1;

После долгого ожидания.Выдает ошибку, как показано ниже

    FAILED: Error in acquiring locks: Lock acquisition for 
LockRequest(component:[LockComponent(type:EXCLUSIVE, level:TABLE, dbname:db1, 
tablename:tbl1, operationType:NO_TXN, isAcid:true)], txnid:0, user:xyz, 
hostname:host123, agentInfo:xyz_20190310220349_62d794b8-3166-4049-b9f9-646e40f1d344) timed out after 5503335ms.  LockResponse(lockid:5563, 
state:WAITING)

Но никакой другой пользователь или задание не использует эту таблицу.Чтобы ждать блокировки.В чем еще причина ожидания?

Также запрос вставки был выполнен непосредственно перед усечением (для определенного условия).

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Поскольку другого ответа не было, я хотел бы отметить, что Delete from table завершено в обычное время (заняло 2 минуты и, что более важно, нет ошибки блокировки) в моем случае по сравнению с Truncate.

0 голосов
/ 11 марта 2019

Поддержка параллелизма Hive для кислотных таблиц не совсем верна.

Согласно https://community.hortonworks.com/content/supportkb/150639/hive-queries-randomly-fail-due-to-error-in-acquiri.html

Отключить поддержку параллелизма с (set hive.support.concurrency=false) и перезапустите затронутые компоненты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...