您可以通过两种方式做到这一点:
1) 直接在单个 HIVE 脚本中(.hql 文件)
只需将您的属性放在 Hive hql 脚本的开头,例如:
set hive.execution.engine=tez;
CREATE TABLE...
2) 通过应用程序配置
创建 EMR 集群时,您可以指定适用于整个集群生命周期的 Hive 配置。这可以通过 AWS 管理控制台或 AWS CLI 进行。
a) AWS 管理控制台
- 打开AWS EMR服务并点击创建集群按钮
- 点击顶部的转到高级选项
- 请务必在应用程序中选择 Hive,然后输入如下 JSON 配置,您可以在其中找到您通常在
hive-site xml 配置中拥有的所有属性,我突出显示了 TEZ 属性作为示例。您可以选择从 S3 路径加载 JSON。
b) AWS CLI
正如here 中的详细说明,您可以在创建集群时指定 Hive 配置,使用标志 --configurations,如下所示:
aws emr create-cluster --configurations file://configurations.json --release-label emr-5.9.0 --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large --auto-terminate
JSON 文件与上面管理控制台示例中显示的内容相同。
同样,您可以选择指定 S3 路径:
--configurations https://s3.amazonaws.com/myBucket/configurations.json