在Amazon EMR中设置配置单元属性?

问题描述 投票:0回答:2

我正在尝试使用Amazon EMR运行Hive查询,并且我也试图让Apache Tez使用它,根据我的理解,需要根据hive.execution.enginetez属性设置为the hive site

我知道hive属性通常可以使用set hive.{...}设置,或者在hive-site.xml中设置,但我不知道这些与Amazon EMR中的任何一个交互/可能如何。

那么:有没有办法在Amazon EMR中设置Hive配置属性,如果有,怎么做?

谢谢!

hadoop amazon-web-services hive emr
2个回答
0
投票

Amazon Elastic MapReduce(EMR)是部署普通Hadoop发行版的自动化方法。您通常可以针对Hadoop和Hive运行的命令也可以在EMR下运行。

您可以以交互方式(通过登录主节点)或通过脚本(作为作业“步骤”提交)执行配置单元命令。

您将负责在Amazon EMR上安装TEZ。我发现这个论坛帖子:TEZ on EMR


0
投票

您可以通过两种方式执行此操作:

1)直接在单个HIVE SCRIPT(.hql文件)中

只需将您的属性放在Hive hql脚本的开头,例如:

set hive.execution.engine=tez;
CREATE TABLE...

2)VIA应用配置

创建EMR集群时,可以指定适用于整个集群生命周期的Hive配置。这可以通过AWS管理控制台或AWS CLI进行。

a)AWS管理控制台

  1. 打开AWS EMR服务,然后单击“创建群集”按钮

enter image description here

  1. 单击顶部的转到高级选项

enter image description here

  1. 确保在应用程序中选择Hive,然后输入如下所示的JSON配置,您可以在其中找到hive-site xml配置中通常具有的所有属性,我突出显示了TEZ属性作为示例。您可以选择从S3路径加载JSON。

enter image description here

b)AWS CLI

正如详细说明的here,您可以使用标志--configurations指定群集创建时的Hive配置,如下所示:

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
© www.soinside.com 2019 - 2024. All rights reserved.