我正在尝试使用Amazon EMR运行Hive查询,并且我正在尝试让Apache Tez使用它,根据我的理解,需要根据hive.execution.engine
属性设置为tez
到the hive site?
我知道hive属性通常可以使用set hive.{...}
或hive-site.xml
进行设置,但我不知道这些属性在Amazon EMR中如何与/进行交互。
那么:有没有办法在Amazon EMR中设置Hive配置属性,如果有,怎么做?
谢谢!
答案 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管理控制台
hive-site
xml配置中拥有的所有属性,我以TEZ属性为例进行了突出显示。您可以选择从S3路径加载JSON。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