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
- Een operationeel Trino-cluster met HDInsight in AKS.
- Maak een ARM-sjabloon voor uw cluster.
- Bekijk het volledige ARM-sjabloonvoorbeeld van het cluster.
- Bekendheid met het 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
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 serviceConfigsProfiles voor 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"
}
]
}
}
}
}
}
]
}