Externe Hive-metastore-database gebruiken
Belangrijk
Azure HDInsight op AKS is op 31 januari 2025 buiten gebruik gesteld. Meer informatie in deze aankondiging.
U moet uw workloads migreren naar Microsoft Fabric- of een gelijkwaardig Azure-product om plotselinge beëindiging van uw workloads te voorkomen.
Belangrijk
Deze functie is momenteel beschikbaar als preview-versie. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews meer juridische voorwaarden bevatten die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet in algemene beschikbaarheid zijn vrijgegeven. Voor meer informatie over deze specifieke preview, zie Azure HDInsight on AKS preview-informatie. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight- met de details en volgt u ons voor meer updates over 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-metastoredatabase tijdens het maken van 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.
Voorwaarden
- Een operationeel Trino-cluster met HDInsight in AKS.
- Maak ARM-sjabloon voor uw cluster.
- Bekijk het volledige cluster ARM-sjabloon voorbeeld.
- Bekendheid met ontwerpen en implementeren van ARM-sjablonen.
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
sectie worden vermeld, worden geconfigureerd voor het gebruik van een en dezelfde databaseparameters die eerst worden opgegeven.
Externe Hive-metastore-database toevoegen
Er zijn enkele belangrijke secties die u aan uw ARM-clustersjabloon moet toevoegen om de Hive-catalogus en hive-metastoredatabase te configureren:
Metastore-configuratie
Configureer de externe Hive-metastore-database in config.properties
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"
}
}
Eigenschap | 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 authenticatie voor een externe Hive-metastore-database met behulp van Azure Key Vault-geheimen.
Notitie
referenceName
moet overeenkomen met de waarde 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"
} ]
},
Eigendom | Beschrijving | Voorbeeld |
---|---|---|
secretsProfile.keyVaultResourceId | Azure-resource-id-tekenreeks naar Azure Key Vault waar geheimen voor Hive-metastore worden opgeslagen. | /subscriptions/0000000-0000-0000-0000-000000000000/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, alleen 'Geheim' wordt 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 hive.metastore=hdi
eigenschap opgeven. Zie Catalogi toevoegen aan een bestaand clustervoor 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 succesvol is aangemaakt.
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
samen met hive.metastore=hdi
cataloguseigenschap:
Eigenschap | Beschrijving | Voorbeeld |
---|---|---|
trinoProfile.catalogOptions.hive | Lijst met Hive-, Iceberg- of deltacatalogussen met parameters voor een externe Hive-metastore-database, vereist 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 in serviceConfigsProfiles , die is geconfigureerd voor het gebruik van een externe Hive-metastore-database. |
hive1 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL | JDBC-verbindingsreeks naar de 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 een 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"
}
]
}
}
}
}
}
]
}