hadoop - 使用非重叠查询并行插入配置单元表

标签 hadoop hive

假设我必须将表 T1 和 T2 都按(天,国家/地区)进行分区,并且我并行运行两个查询,类似于:

INSERT OVERWRITE TABLE T1 PARTITION (day, country) SELECT * FROM T2 WHERE country='DE'
INSERT OVERWRITE TABLE T1 PARTITION (day, country) SELECT * FROM T2 WHERE country='FR'

因此,对于非重叠查询。我不确定在这种情况下发生了什么?根据文档 https://cwiki.apache.org/confluence/display/Hive/Locking#Locking-TurnOffConcurrency据我了解,第二个查询必须等到第一个查询完成。

最佳答案

我认为这是不可能的,因为每当您尝试在配置单元中的表上插入覆盖时,该表将处于独占锁定模式...这意味着您只能从该表中读取但不能将内容添加到表中.

请引用以下链接,其中介绍了 hive 中的锁定机制:https://cwiki.apache.org/confluence/display/Hive/Locking

关于hadoop - 使用非重叠查询并行插入配置单元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46527476/

相关文章:

scala - YARN 模式下的 Spark 作业失败

java - JSON 对象跨越多行,如何在 Hadoop 中拆分输入

sql - 无法在子查询中识别 'select'附近的输入

hadoop - 删除数据后drop hive外部表,不行吗?

hive - Hive 中的嵌套选择

hadoop - 配置单元多次插入使用DISTINCT select语句出错

hadoop - Hive 显示的行数少于 HBase

hadoop - OLAP CUBE可以在HBase中做吗?

hadoop - 如何从JavaSparkContext获取HiveContext

hadoop - 将数据从 S3 加载到位于 EMR 中 S3 的外部 Hive 表时出现 "Path is not legal"错误