我需要运行多个独立的insert语句来并行地将数据放入HIVE表中。各个命令如下:
hive -e "insert into fieldcounts select 'fname', count(*) from tab1 where fname is not null"
我有100个字段,所以我生成了100个插入语句。 HIVE会将每个插入作为自己的地图缩减工作。我希望能够并行运行10-20个这样的插入语句,以加快这个过程。
但是我无法使用xargs或gnu-parallel实现这一点,甚至无法使用在后台运行的多个hive -e命令手动创建shell脚本。我注意到hive实例总是按顺序运行。
就好像单个执行hive命令会阻止所有其他配置单元命令。无论我尝试什么,命令都会按顺序运行。
还有其他人遇到过这种情况吗?我有什么选择?我可以强制减少单个HIVE地图以实现我的目标吗?有没有办法强制多个hive命令实际并行执行?
编辑:
谢谢Stephen指出锁。所以我会修改这个问题。有没有一种机制让我告诉配置单元不要独占锁定我的insert语句的目标表,所以我可以并行执行多个插入?我希望在进行INSERT时做出决定,而不是全局进行diable lock。