Hadoop 蜂巢唐';当旧分区上存在读锁时,新分区上无法获得写锁

Hadoop 蜂巢唐';当旧分区上存在读锁时,新分区上无法获得写锁,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我们有按日期划分的数据。我们的管道每天向表中添加新分区。我们还有一些用例,在这些用例中,人们通过对分区进行过滤来运行长读查询 我们已经看到了这种行为,其中,如果有一些读取查询在旧分区上运行(具有共享锁),那么我们就不能为新分区获取锁(独占) 有没有一种方法可以让HIVE意识到,新分区不会被先前的查询读取,并获取该分区的EXLUSIVE lock以提高并行性。根据分区上的共享锁,并不阻止您在同一分区上获得排他锁 理论上,你的问题似乎无效,但实际上我可以想到以下两件事: hive很难看到您使用的分区

我们有按日期划分的数据。我们的管道每天向表中添加新分区。我们还有一些用例,在这些用例中,人们通过对分区进行过滤来运行长读查询

我们已经看到了这种行为,其中,如果有一些读取查询在旧分区上运行(具有共享锁),那么我们就不能为新分区获取锁(独占)

有没有一种方法可以让HIVE意识到,新分区不会被先前的查询读取,并获取该分区的EXLUSIVE lock以提高并行性。

根据分区上的共享锁,并不阻止您在同一分区上获得排他锁

理论上,你的问题似乎无效,但实际上我可以想到以下两件事:

  • hive很难看到您使用的分区(复杂/间接where语句?)
  • 文件不准确,或被我误解
  • 我建议您检查第1点,否则添加一个最小的可复制示例