Sdílet prostřednictvím


Použití externí databáze metastoru Hive

Důležitý

Azure HDInsight v AKS byl vyřazen 31. ledna 2025. Zjistěte více o tomto oznámení .

Abyste se vyhnuli náhlému ukončení úloh, musíte migrovat úlohy do Microsoft Fabric nebo ekvivalentního produktu Azure.

Důležitý

Tato funkce je aktuálně ve verzi Preview. Doplňkové podmínky použití pro verze Preview Microsoft Azure obsahují další právní podmínky, které se vztahují na funkcionality Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nebyly zveřejněny jako obecně dostupné. Informace o konkrétních verzích preview Azure HDInsight na AKS najdete v části . Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás pro další aktualizace v komunitě Azure HDInsight .

Metastore Hive se používá jako centrální úložiště pro ukládání metadat o datech. Tento článek popisuje, jak do clusteru Trino s HDInsight v AKS přidat databázi metastoru Hive. Existují dva způsoby:

  • Můžete přidat katalog Hive a propojit ho s externí databází metastoru Hive během vytvoření clusteru Trino.

  • Pomocí aktualizace šablony ARM můžete přidat katalog Hive a připojit k clusteru externí databázi metastoru Hive.

Následující příklad popisuje přidání katalogu Hive a databáze metastoru do clusteru pomocí šablony ARM.

Požadavky

Poznámka

  • V současné době podporujeme Službu Azure SQL Database jako integrovaný metastore.
  • Kvůli omezení Hive není znak "-" (spojovník) v názvu databáze metastoru podporován.
  • Podporuje se pouze jedno připojení k databázi metastoru. Všechny katalogy uvedené v oddílu clusterProfile.trinoProfile.catalogOptions.hive budou nakonfigurovány tak, aby používaly jeden a stejné parametry databáze, které jsou zadány jako první.

Přidejte externí databázi Hive metastore

Je potřeba do šablony ARM clusteru přidat několik důležitých částí, abyste mohli nakonfigurovat katalog Hive a databázi metastoru Hive:

Konfigurace metastoru

Konfigurace externí databáze metastoru Hive v souboru config.properties:

{
    "fileName": "config.properties",
    "values": {
        "hive.metastore.hdi.metastoreDbConnectionURL": "jdbc:sqlserver://server-name.database.windows.net;database=myhmsdb1;encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
        "hive.metastore.hdi.metastoreDbConnectionUserName": "trinoadmin",
        "hive.metastore.hdi.metastoreDbConnectionPasswordSecret": "hms-db-pwd",
        "hive.metastore.hdi.metastoreWarehouseDir": "abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse"
    }
}
Vlastnost Popis Příklad
hive.metastore.hdi.metastoreDbConnectionURL Připojovací řetězec JDBC k databázi. jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
hive.metastore.hdi.metastoreDbConnectionUserName Uživatelské jméno SQL pro připojení k databázi trinoadmin
hive.metastore.hdi.metastoreDbConnectionPasswordSecret Tajný referenční název nakonfigurovaný v secretsProfile s heslem. hms-db-pwd
hive.metastore.hdi.metastoreWarehouseDir Identifikátor URI ABFS na umístění v úložišti, kde jsou data uložena. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Ověřování metastoru

Nakonfigurujte ověřování pro externí databázi metastoru Hive určující tajné kódy služby Azure Key Vault.

Poznámka

referenceName by se měla shodovat s hodnotou uvedenou v hive.metastore.hdi.metastoreDbConnectionPasswordSecret

"secretsProfile": {
    "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
    "secrets": [
        {
            "referenceName": "hms-db-pwd",
            "type": "Secret",
            "keyVaultObjectName": "hms-db-pwd"
        }                        ]
},
Vlastnost Popis Příklad
secretsProfile.keyVaultResourceId Řetězec ID prostředku Azure do služby Azure Key Vault, kde se ukládají tajné kódy pro metastore Hive. /subscriptions/000000-0000-0000-0000-0000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv
secretsProfile.secrets[*].referenceName Jedinečný název tajného kódu, který se použije později v clusterProfile. Secret1_ref
secretsProfile.secrets[*].type Typ objektu ve službě Azure Key Vault, podporován je pouze "Tajemství". Tajný
secretsProfile.secrets[*].keyVaultObjectName Název tajného objektu ve službě Azure Key Vault obsahující skutečnou hodnotu tajného kódu secret1

Konfigurace katalogu

Aby katalog Trino používal externí metastor Hive, měl by zadat hive.metastore=hdi vlastnost. Další informace najdete v tématu Přidání katalogů do existujícího clusteru:

{
    "fileName": "hive1.properties",
    "values": {
        "connector.name": "hive",
        "hive.metastore": "hdi"
    }
}

Kompletní příklad

Pokud chcete nakonfigurovat externí metastor Hive do existujícího clusteru Trino, přidejte do šablony ARM clusteru požadované oddíly podle následujícího příkladu:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [
        {
            "type": "microsoft.hdinsight/clusterpools/clusters",
            "apiVersion": "<api-version>",
            "name": "<cluster-pool-name>/<cluster-name>",
            "location": "<region, e.g. westeurope>",
            "tags": {},
            "properties": {
                "clusterType": "Trino",

                "clusterProfile": {
                    "secretsProfile": {
                        "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
                        "secrets": [
                            {
                                "referenceName": "hms-db-pwd",
                                "type": "Secret",
                                "keyVaultObjectName": "hms-db-pwd"
                            }                        ]
                    },
                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "common",
                                    "files": [
                                        {
                                            "fileName": "config.properties",
                                            "values": {
                                                "hive.metastore.hdi.metastoreDbConnectionURL": "jdbc:sqlserver://server-name.database.windows.net;database=myhmsdb1;encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
                                                "hive.metastore.hdi.metastoreDbConnectionUserName": "trinoadmin",
                                                "hive.metastore.hdi.metastoreDbConnectionPasswordSecret": "hms-db-pwd",
                                                "hive.metastore.hdi.metastoreWarehouseDir": "abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse"
                                            }
                                        }
                                    ]
                                },
                                {
                                    "component": "catalogs",
                                    "files": [
                                        {
                                            "fileName": "hive1.properties",
                                            "values": {
                                                "connector.name": "hive",
                                                "hive.metastore": "hdi"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        }
    ]
}

Nasaďte aktualizovanou šablonu ARM tak, aby odrážela změny v clusteru. Zjistěte, jak nasadit šablonu ARM. Po úspěšném nasazení se v clusteru Trino zobrazí katalog Hive1.

Můžete spustit několik jednoduchých dotazů a vyzkoušet katalog Hive.

Zkontrolujte, jestli se katalog Hive úspěšně vytvořil.

show catalogs;

Dotazování na tabulku (v tomto příkladu je "hive1" název zadaného katalogu Hive).

create schema hive1.schema1;
create table hive1.schema1.tpchorders as select * from tpch.tiny.orders;
select * from hive1.schema1.tpchorders limit 100;

Alternativní konfigurace

Případně je možné zadat externí parametry databáze metastoru Hive v trinoProfile.catalogOptions.hive společně s vlastností katalogu hive.metastore=hdi:

Vlastnost Popis Příklad
trinoProfile.catalogOptions.hive Seznam katalogů Hive, Iceberg nebo Delta s parametry externí databáze metadatového úložiště Hive, vyžaduje parametry pro každý z nich. Chcete-li použít externí databázi metastoru, musí být katalog v tomto seznamu.
trinoProfile.catalogOptions.hive[*].catalogName Název katalogu Trino nakonfigurovaného v serviceConfigsProfiles, který je nastavený k použití externí databáze metastoru Hive. hive1
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL Připojovací řetězec JDBC k databázi. jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionUserName Uživatelské jméno SQL pro připojení k databázi trinoadmin
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionPasswordSecret Název odkazu na tajný kód nakonfigurovaný v souboru secretsProfile s heslem. hms-db-pwd
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir URI ABFS na místo v úložišti, kde jsou data uložena. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Kompletní příklad

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [
        {
            "type": "microsoft.hdinsight/clusterpools/clusters",
            "apiVersion": "<api-version>",
            "name": "<cluster-pool-name>/<cluster-name>",
            "location": "<region, e.g. westeurope>",
            "tags": {},
            "properties": {
                "clusterType": "Trino",

                "clusterProfile": {
                    "secretsProfile": {
                        "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
                        "secrets": [
                            {
                                "referenceName": "hms-db-pwd",
                                "type": "Secret",
                                "keyVaultObjectName": "hms-db-pwd"
                            }                        ]
                    },
                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "catalogs",
                                    "files": [
                                        {
                                            "fileName": "hive1.properties",
                                            "values": {
                                                "connector.name": "hive",
                                                "hive.metastore": "hdi"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ],
                    "trinoProfile": {
                        "catalogOptions": {
                            "hive": [
                                {
                                    "catalogName": "hive1",
                                    "metastoreDbConnectionURL": "jdbc:sqlserver://server-name.database.windows.net;database=myhmsdb1;encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
                                    "metastoreDbConnectionUserName": "trinoadmin",
                                    "metastoreDbConnectionPasswordSecret": "hms-db-pwd",
                                    "metastoreWarehouseDir": "abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]
}