什么时候在会话期间设置配置单元参数?

When to set hive parameters during a session?

我是新角色,其中一部分需要 creating/inserting 数据到托管和外部配置单元表中。我们有几行 'set' 参数,我们在配置单元会话开始时 运行,但我已经 运行 进入一些情况,例如,文件被合并对于某些分区(文件数量很少),但对于其他分区(许多较小的文件)似乎是随机的。

我的问题是:什么时候需要输入我所有的 Hive 设置参数?我 运行 宁 insert/command/statement 是否需要对每个人都进行此操作?或者只是在 Hive 会话开始时启动 Hive 时?

这些是我们一直在使用的标准设置参数:

SET mapred.job.queue.name=yometrics;
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;
SET hive.exec.max.dynamic.partitions=2000;
SET hive.exec.max.dynamic.partitions.pernode=2000;
SET hive.merge.tezfiles=true;

您可以将配置放在文件的开头,它将对整个会话有效。

或者,您可以将通用参数放在单独的文件 params.hql 和每个脚本调用中

source /local/path/to/the/file/params.hql开头。

您也可以将它们放在 hive-site.xml

如果您使用 Qubole/AWS,您也可以使用 bootstrap:https://docs.qubole.com/en/latest/user-guide/hive/bootstrap-script.html