使用 Terraform 在 EMR 上为 Presto/Spark 启用粘合目录的选项
Option to enable glue catalog for Presto/Spark on EMR using Terraform
想知道当 EMR.Could 上的 运行 在文档中找不到任何内容时,是否支持为 Presto/Spark 启用 aws glue catalog。
以下 AWS 文档讨论了如何将 Amazon EMR 上的 Apache Spark 和 Hive 与 AWS Glue 数据目录结合使用,以及将 AWS Glue 数据目录用作 Presto 的默认 Hive 元存储(Amazon EMR 版本 5.10.0 及更高版本) ).希望您正在寻找这个?
https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-glue.html 和
和
另请检查此 SO link 以了解 EMR 上的一些粘合目录配置:
Issue with AWS Glue Data Catalog as Metastore for Spark SQL on EMR
根据上面答案提供的 link,我能够按如下方式对 terraform 代码进行建模:
使用以下内容创建一个configuration.json.tpl
[{
"Classification": "spark-hive-site",
"Properties": {
"hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"
}
}
]
在 Terraform 代码中根据上述模板创建模板
data "template_file" "cluster_1_configuration" {
template = "${file("${path.module}/templates/configuration.json.tpl")}"
}
然后这样设置集群-:
resource "aws_emr_cluster" "cluster_1" {
name = "${var.cluster_name}-1"
release_label = "emr-5.21.0"
applications = ["Spark", "Zeppelin", "Hadoop","Sqoop"]
log_uri = "s3n://${var.cluster_name}/logs/"
configurations = "${data.template_file.cluster_1_configuration.rendered}"
...
}
Glue 现在应该可以从 Spark 运行,您可以通过从 spark-shell.
调用 spark.catalog.listDatabases().show() 来验证这一点
想知道当 EMR.Could 上的 运行 在文档中找不到任何内容时,是否支持为 Presto/Spark 启用 aws glue catalog。
以下 AWS 文档讨论了如何将 Amazon EMR 上的 Apache Spark 和 Hive 与 AWS Glue 数据目录结合使用,以及将 AWS Glue 数据目录用作 Presto 的默认 Hive 元存储(Amazon EMR 版本 5.10.0 及更高版本) ).希望您正在寻找这个?
https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-glue.html 和
和
另请检查此 SO link 以了解 EMR 上的一些粘合目录配置:
Issue with AWS Glue Data Catalog as Metastore for Spark SQL on EMR
根据上面答案提供的 link,我能够按如下方式对 terraform 代码进行建模:
使用以下内容创建一个configuration.json.tpl
[{
"Classification": "spark-hive-site",
"Properties": {
"hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"
}
}
]
在 Terraform 代码中根据上述模板创建模板
data "template_file" "cluster_1_configuration" {
template = "${file("${path.module}/templates/configuration.json.tpl")}"
}
然后这样设置集群-:
resource "aws_emr_cluster" "cluster_1" {
name = "${var.cluster_name}-1"
release_label = "emr-5.21.0"
applications = ["Spark", "Zeppelin", "Hadoop","Sqoop"]
log_uri = "s3n://${var.cluster_name}/logs/"
configurations = "${data.template_file.cluster_1_configuration.rendered}"
...
}
Glue 现在应该可以从 Spark 运行,您可以通过从 spark-shell.
调用 spark.catalog.listDatabases().show() 来验证这一点