Delen via


Externe Hive-metastore-database gebruiken

Notitie

Op 31 januari 2025 wordt Azure HDInsight buiten gebruik gesteld op AKS. Vóór 31 januari 2025 moet u uw workloads migreren naar Microsoft Fabric of een gelijkwaardig Azure-product om te voorkomen dat uw workloads plotseling worden beëindigd. De resterende clusters in uw abonnement worden gestopt en verwijderd van de host.

Alleen basisondersteuning is beschikbaar tot de buitengebruikstellingsdatum.

Belangrijk

Deze functie is momenteel beschikbaar in preview. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews bevatten meer juridische voorwaarden die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet beschikbaar zijn in algemene beschikbaarheid. Zie Azure HDInsight op AKS Preview-informatie voor meer informatie over deze specifieke preview. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight met de details en volgt u ons voor meer updates in de Azure HDInsight-community.

Hive-metastore wordt gebruikt als een centrale opslagplaats voor het opslaan van metagegevens over de gegevens. In dit artikel wordt beschreven hoe u een Hive-metastore-database kunt toevoegen aan uw Trino-cluster met HDInsight in AKS. Er zijn twee manieren:

  • U kunt een Hive-catalogus toevoegen en deze koppelen aan een externe Hive-metastore-database tijdens het maken van een Trino-cluster.

  • U kunt een Hive-catalogus toevoegen en een externe Hive-metastore-database aan uw cluster koppelen met behulp van EEN ARM-sjabloonupdate.

In het volgende voorbeeld wordt de toevoeging van de Hive-catalogus en metastore-database aan uw cluster behandeld met behulp van een ARM-sjabloon.

Vereisten

Notitie

  • Momenteel ondersteunen we Azure SQL Database als ingebouwde metastore.
  • Vanwege hive-beperking wordt het teken '-' (afbreekstreepje) in de naam van de metastore-database niet ondersteund.
  • Er wordt slechts één metastore-databaseverbinding ondersteund. Alle catalogi die in clusterProfile.trinoProfile.catalogOptions.hive de sectie worden vermeld, worden geconfigureerd voor het gebruik van één en dezelfde databaseparameters die eerst worden opgegeven.

Externe Hive-metastore-database toevoegen

Er zijn enkele belangrijke secties die u moet toevoegen aan uw CLUSTER ARM-sjabloon om de Hive-catalogus en hive-metastore-database te configureren:

Metastore-configuratie

Configureer de externe Hive-metastore-database in config.properties het bestand:

{
    "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"
    }
}
Eigenschappen Beschrijving Voorbeeld
hive.metastore.hdi.metastoreDbConnectionURL JDBC-verbindingsreeks naar database. jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
hive.metastore.hdi.metastoreDbConnectionUserName SQL-gebruikersnaam om verbinding te maken met de database. trinoadmin
hive.metastore.hdi.metastoreDbConnectionPasswordSecret Secret referenceName geconfigureerd in secretsProfile met wachtwoord. hms-db-pwd
hive.metastore.hdi.metastoreWarehouseDir ABFS-URI naar locatie in opslag waar gegevens worden opgeslagen. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Metastore-verificatie

Configureer verificatie voor externe Hive-metastore-database die Azure Key Vault-geheimen opgeeft.

Notitie

referenceName moet overeenkomen met de waarde die is opgegeven in 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"
        }                        ]
},
Eigenschappen Beschrijving Voorbeeld
secretsProfile.keyVaultResourceId Azure-resource-id-tekenreeks naar Azure Key Vault waar geheimen voor Hive-metastore worden opgeslagen. /subscriptions/0000000-0000-0000-00000-0000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv
secretsProfile.secrets[*].referenceName Unieke referentienaam van het geheim dat u later in clusterProfile wilt gebruiken. Secret1_ref
secretsProfile.secrets[*].type Het type object in Azure Key Vault wordt alleen 'Geheim' ondersteund. Geheim
secretsProfile.secrets[*].keyVaultObjectName Naam van geheimobject in Azure Key Vault met de werkelijke geheime waarde. geheim1

Catalogusconfiguratie

Als u wilt dat een Trino-catalogus externe Hive-metastore gebruikt, moet deze eigenschap opgeven hive.metastore=hdi . Zie Catalogi toevoegen aan bestaand cluster voor meer informatie:

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

Volledig voorbeeld

Als u externe Hive-metastore wilt configureren voor een bestaand Trino-cluster, voegt u de vereiste secties in de ARM-clustersjabloon toe door te verwijzen naar het volgende voorbeeld:

{
    "$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"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        }
    ]
}

Implementeer de bijgewerkte ARM-sjabloon om de wijzigingen in uw cluster weer te geven. Meer informatie over het implementeren van een ARM-sjabloon. Zodra de implementatie is geslaagd, ziet u de hive1-catalogus in uw Trino-cluster.

U kunt enkele eenvoudige query's uitvoeren om de Hive-catalogus uit te proberen.

Controleer of de Hive-catalogus is gemaakt.

show catalogs;

Een query uitvoeren op een tabel (in dit voorbeeld is 'hive1' de naam van de hive-catalogus die is opgegeven).

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

Alternatieve configuratie

U kunt ook externe Hive-metastore-databaseparameters opgeven in trinoProfile.catalogOptions.hive combinatie met hive.metastore=hdi de cataloguseigenschap:

Eigenschappen Beschrijving Voorbeeld
trinoProfile.catalogOptions.hive Lijst met Hive- of ijsberg- of deltacatalogussen met parameters van externe Hive-metastore-database, vereisen parameters voor elk. Als u een externe metastore-database wilt gebruiken, moet de catalogus aanwezig zijn in deze lijst.
trinoProfile.catalogOptions.hive[*].catalogName De naam van de Trino-catalogus die is geconfigureerd serviceConfigsProfilesvoor het gebruik van een externe Hive-metastore-database. hive1
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL JDBC-verbindingsreeks naar database. jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionUserName SQL-gebruikersnaam om verbinding te maken met de database. trinoadmin
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionPasswordSecret Secret referenceName geconfigureerd in secretsProfile met wachtwoord. hms-db-pwd
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir ABFS-URI naar locatie in opslag waar gegevens worden opgeslagen. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Volledig voorbeeld

{
    "$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"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]
}