ОШИБКА: СБОЙ: ошибка при получении блокировок: ошибка связи с организацией метастазирования. apache .had oop .hive.ql.lockmgr.LockException - PullRequest
0 голосов
/ 21 апреля 2020

Получение Error in acquiring locks при попытке запустить count (*) для многораздельных таблиц. Таблица имеет 365 разделов, когда фильтруется на <= 350 разделов </strong>, запросы работают нормально. при попытке включить больше разделов для запроса происходит сбой с ошибкой.

работает с таблицами ACID, управляемыми Hive, со следующими значениями по умолчанию

  • hive.support.concurrency = true // не может сделать его ложным, он выдает <table> is missing from the ValidWriteIdList config: null, должен быть истинным для чтения и записи ACID.
  • hive.lock.manager = org. apache .had oop .hive.ql.lockmgr.zookeeper.ZooKeeperHiveLockManager
  • hive.txn.manager = org. apache .had oop .hive.ql.lockmgr.DbTxnManager
  • hive.txn.strict.locking.mode = false
  • hive.exe c .dynami c .partition.mode = nonstrict

Пробовал увеличивать / уменьшать значения для этих следующих сессий beeline.

  • hive.lock.numretries
  • hive.unlock.numretries
  • hive.lock .sleep.between.retries
  • hive.metastore.batch.retrieve.max = {default 300} // изменено на 10000
  • hive.metastore.server.max.message.size = { по умолчанию 104857600} // изменено на 10485760000
  • hive.metastore.limit.partition.request = {default -1} // не изменилось, поскольку -1 не ограничено
  • hive.metastore.batch.retrieve. max = {default 300} // изменено на 10000.
  • hive.lock.query.string.max.length = {default 10000} // изменено на более высокое значение

При использовании кластера интерактивных запросов HDI-4.0 мета-хранилище по умолчанию поддерживается sql -сервером, предоставленным вместе.

1 Ответ

0 голосов
/ 06 мая 2020

Мы также столкнулись с той же ошибкой в ​​HDInsight, и после многих изменений конфигурации, аналогичных выполненным вами, единственное, что сработало, - это масштабирование нашего сервера Hive Metastore SQL DB.

Нам пришлось масштабировать его до уровня P2 с 250 DTU, чтобы наши рабочие нагрузки работали без этих исключений блокировки. Как вы, возможно, знаете, при подсчете уровня и DTU улучшается IOPS и время отклика SQL сервера, поэтому мы подозревали, что производительность Metastore была причиной root для этих исключений блокировки с увеличением рабочих нагрузок.

Следующая ссылка предоставляет информацию об изменении производительности на основе DTU на SQL серверах на Azure.

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers-dtu

Кроме того, как я знаю, Hive по умолчанию metastore, который инициализируется, когда вы решаете не предоставлять внешнюю БД при создании кластера, является просто БД уровня S1. Это не подходит для любых нагрузок с высокой пропускной способностью. В то же время, в качестве передовой практики всегда выделяйте свои метастазы, внешние по отношению к кластеру, и подключайте их во время подготовки кластера, поскольку это дает вам гибкость для подключения одного и того же Metastore к нескольким кластерам (так что ваша схема уровня Hive может совместно использоваться несколькими кластеров, например, имел oop для ETL и Spark для обработки / машинного обучения), и у вас есть полный контроль над увеличением или уменьшением метастаза в соответствии с вашими потребностями в любое время.

Единственный способ масштабирования по умолчанию Metastore - это поддержка Microsoft.

...