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

时间:2015-07-31 18:21:47

标签: hadoop amazon-web-services hive emr

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

1)直接在单个HIV脚本内(.hql文件)

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

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

2)通过应用程序配置

创建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