在 google dataproc 上执行 hive 作业时如何使用参数/属性标志值

Posted

技术标签:

【中文标题】在 google dataproc 上执行 hive 作业时如何使用参数/属性标志值【英文标题】:How to use params/properties flag values when executing hive job on google dataproc 【发布时间】:2017-12-11 16:03:45 【问题描述】:

我正在尝试使用以下 gcloud 命令在 google dataproc 中执行配置单元作业:

gcloud dataproc 作业提交 hive --cluster=msm-test-cluster --file hive.sql --properties=[bucket1=abcd]

gcloud dataproc 作业提交 hive --cluster=msm-test-cluster --file hive.sql --params=[bucket1=abcd]

但是以上 2 个命令都不能将 'bucket1' 变量设置为 'x' 变量。

hive脚本如下:

set x=$bucket1;
set x;
drop table T1;
create external table T1( column1 bigint, column2 float, column3 int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION 'gs://$hiveconf:x/output/prod';

但变量“x”无法获取我在 gcloud 命令中传递的“bucket1”变量。

我该怎么做?请推荐

【问题讨论】:

【参考方案1】:

这两个示例都应该进行细微的调整。

cloud dataproc jobs submit hive --cluster=msm-test-cluster --file hive.sql --properties bucket1=abcd中,您可以通过$bucket1访问变量

gcloud dataproc jobs submit hive --cluster=msm-test-cluster --file hive.sql --params bucket1=abcd中,您可以通过$hivevar:bucket1访问变量

测试这个的简单方法是提交这样的脚本来转储所有变量:

gcloud dataproc jobs submit hive --cluster msm-test-cluster -e "set;" --properties foo=bar --params bar=baz

输出应包含:

| foo=bar    
| hivevar:bar=baz

相关问题: How to set variables in HIVE scripts

【讨论】:

以上是关于在 google dataproc 上执行 hive 作业时如何使用参数/属性标志值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Cloud Platform 上查看 Dataproc 作业的输出文件

无法在Google Cloud Dataproc上启动Apache Flink 1.7

为啥 Spark(在 Google Dataproc 上)不使用所有 vcore?

来自 DataProc 集群的 Google Cloud Sdk

从 Google 的 dataproc 中读取 S3 数据

Google Dataproc 是不是支持 Apache Impala?