0

我正在尝试使用 Amazon EMR 运行 Hive 查询,并试图让 Apache Tez 也可以使用它,据我所知,这需要根据hive 站点hive.execution.engine设置属性?tez

我知道 hive 属性可以设置为set hive.{...}通常或在 中hive-site.xml,但我不知道其中任何一个如何与/在 Amazon EMR 中进行交互。

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

谢谢!

4

2 回答 2

1

您可以通过两种方式做到这一点:

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

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

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

2) 通过应用程序配置

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

a) AWS 管理控制台

  1. 打开 AWS EMR 服务并单击创建集群按钮

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

b) AWS CLI

如此处详细所述,您可以使用标志指定集群创建时的 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
于 2019-04-10T15:26:25.587 回答
0

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

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

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

于 2015-08-01T01:33:23.647 回答