Я использую Terraform для настройки кластера Trino, управляемого Amazon EMR.
Вот мой код Terraform:
resource "aws_emr_cluster" "hm_amazon_emr_cluster" {
name = "hm-trino"
release_label = "emr-7.1.0"
applications = ["HCatalog", "Trino"]
master_instance_fleet {
name = "Primary"
target_on_demand_capacity = 3
launch_specifications {
on_demand_specification {
allocation_strategy = "lowest-price"
}
}
instance_type_configs {
weighted_capacity = 1
instance_type = "r7g.xlarge"
}
}
configurations_json = <<EOF
[
{
"Classification": "trino-connector-hive",
"Properties": {
"hive.metastore": "glue"
}
}
]
EOF
# ...
}
Чтобы включить Высокая доступность (HA) для этого кластера Trino, кроме того
HCatalog
в приложениях.master_instance_fleet.target_on_demand_capacity = 3
.trino-connector-hive
, чтобы использовать glue
в файле Configurations_json.Мне нужно включить «Использовать метаданные таблицы Hive» в «Настройках каталога данных AWS Glue», как в этом пользовательском интерфейсе:
Однако я не нашел никакой информации о настройке этой конфигурации по адресу https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/emr_cluster
Есть идеи?
Я обнаружил, что могу добавить hive-site
с "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"
в файле Configurations_json, чтобы отразить «Использовать метаданные таблицы Hive» в «Настройках каталога данных AWS Glue» в пользовательском интерфейсе.
Вот окончательный код:
resource "aws_emr_cluster" "hm_amazon_emr_cluster" {
name = "hm-trino"
release_label = "emr-7.1.0"
applications = ["HCatalog", "Trino"]
master_instance_fleet {
name = "Primary"
target_on_demand_capacity = 3
launch_specifications {
on_demand_specification {
allocation_strategy = "lowest-price"
}
}
instance_type_configs {
weighted_capacity = 1
instance_type = "r7g.xlarge"
}
}
configurations_json = <<EOF
[
{
"Classification": "hive-site",
"Properties": {
"hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"
}
},
{
"Classification": "trino-connector-hive",
"Properties": {
"hive.metastore": "glue"
}
}
]
EOF
placement_group_config = [
{
instance_role = "MASTER"
placement_strategy = "SPREAD"
}
]
# ...
}
Использованная литература: