【问题标题】:Setting hive properties in Amazon EMR?在 Amazon EMR 中设置配置单元属性?
【发布时间】:2023-03-05 10:03:01
【问题描述】:

我正在尝试使用 Amazon EMR 运行 Hive 查询,并尝试让 Apache Tez 也可以使用它,据我了解,这需要根据 the hive sitehive.execution.engine 属性设置为 tez ?

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

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

谢谢!

【问题讨论】:

    标签: amazon-web-services hadoop hive amazon-emr hive-configuration


    【解决方案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-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
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        • 2019-02-12
        • 2018-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-17
        相关资源
        最近更新 更多