Будет ли запрос из Spark hivecontext заблокировать таблицу улья?
Я знаю, что если я отправлю запрос из Hive, будет получена общая блокировка, а затем таблица hive будет заблокирована запросом: https://cwiki.apache.org/confluence/display/Hive/Locking
Поэтому мне просто интересно, если запрос выполняется Spark Hivecontext, будет ли блокировка требоваться, и будет ли таблица также заблокирована? Кроме того, если я вставлю данные в таблицу через Spark Hivecontext, потребуется ли для этого эксклюзивная блокировка?
Спасибо
0 ответов
Он поддерживался в Spark SQL v.1.6 и не поддерживается в версиях 2.x и 3.x.
unsupportedHiveNativeCommands
...
| kw1=LOCK kw2=TABLE
| kw1=LOCK kw2=DATABASE
| kw1=UNLOCK kw2=TABLE
| kw1=UNLOCK kw2=DATABASE
Spark 1.x позволяет явно заблокировать таблицу, используя sqlContext.sql("LOCK <table> [EXCLUSIVE]")
, Сначала вы должны включить параллелизм Hive, выполнив sqlContext.setConf("hive.support.concurrency","true")
,
Однако, если вы попытаетесь сделать то же самое LOCK <table>...
в Spark 2+ вы получите ошибку
org.apache.spark.sql.catalyst.parser.ParseException:
Operation not allowed: LOCK TABLE(line 1, pos 0)