Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktig
Azure HDInsight på AKS drogs tillbaka den 31 januari 2025. Läs mer genom det här meddelandet.
Du måste migrera dina arbetsbelastningar till Microsoft Fabric- eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar.
Viktig
Den här funktionen är för närvarande i förhandsversion. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i beta, förhandsversion eller på annat sätt ännu inte har släppts för allmän tillgänglighet. Information om den här specifika förhandsversionen finns i information om Azure HDInsight på AKS-förhandsversionen. För frågor eller funktionsförslag, skicka en begäran om AskHDInsight- med alla detaljer och följ oss för fler uppdateringar från Azure HDInsight Community.
Hive-metaarkiv används som en central lagringsplats för lagring av metadata om data. Den här artikeln beskriver hur du kan lägga till en Hive-metaarkivdatabas i ditt Trino-kluster med HDInsight i AKS. Det finns två sätt:
Du kan lägga till en Hive-katalog och länka den till en extern Hive-"metastore"-databas under skapandet av Trino-kluster.
Du kan lägga till en Hive-katalog och koppla en extern Hive-metaarkivdatabas till klustret med hjälp av ARM-malluppdatering.
I följande exempel beskrivs tillägget av Hive-katalogen och metaarkivdatabasen i klustret med hjälp av ARM-mallen.
Förutsättningar
- Ett fungerande Trino-kluster med HDInsight på AKS.
- Skapa ARM-mall för klustret.
- Granska det kompletta klustret, exempel på ARM-mall .
- Kunskaper om ARM-mallredigering och distribution.
Obs
- För närvarande stöder vi Azure SQL Database som inbyggt metaarkiv.
- På grund av Hive-begränsning stöds inte "-" (bindestreck) i metaarkivets databasnamn.
- Endast enkel metaarkivdatabasanslutning stöds, alla kataloger som anges i
clusterProfile.trinoProfile.catalogOptions.hive
avsnittet konfigureras att använda en och samma databasparametrar som anges först.
Lägga till en extern Hive-metaarkivdatabas
Det finns några viktiga avsnitt som du behöver lägga till i arm-klustrets mall för att konfigurera Hive-katalogen och Hive-metaarkivdatabasen:
Konfiguration av metaarkiv
Konfigurera en extern Hive-metaarkivdatabas i config.properties
fil:
{
"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"
}
}
Egenskap | Beskrivning | Exempel |
---|---|---|
hive.metastore.hdi.metastoreDbConnectionURL | JDBC-anslutningssträng till databas. | jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30 |
hive.metastore.hdi.metastoreDbConnectionUserName | SQL-användarnamn för att ansluta till databasen. | trinoadmin |
hive.metastore.hdi.metastoreDbConnectionPasswordSecret | Secret referenceName konfigurerat i secretsProfile med lösenord. | hms-db-pwd |
hive.metastore.hdi.metastoreWarehouseDir | ABFS-URI till en plats i lagringen där data lagras. | abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse |
Metaarkivautentisering
Konfigurera autentisering till en extern Hive-metaarkivdatabas som anger Azure Key Vault-hemligheter.
Obs
referenceName
ska matcha värdet i 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"
} ]
},
Egenskap | Beskrivning | Exempel |
---|---|---|
secretsProfile.keyVaultResourceId | Azure-resurs-ID-sträng till Azure Key Vault där hemligheter för Hive-metaarkiv lagras. | /subscriptions/0000000-0000-0000-0000-000000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv |
secretsProfile.secrets[*].referenceName | Unikt referensnamn för hemligheten som ska användas senare i clusterProfile. | Secret1_ref |
secretsProfile.secrets[*].type | Typ av objekt i Azure Key Vault, endast "Hemlighet" stöds. | Hemlig |
secretsProfile.secrets[*].keyVaultObjectName | Namnet på det hemliga objektet i Azure Key Vault som innehåller verkligt hemligt värde. | hemlighet1 |
Katalogkonfiguration
För att en Trino-katalog ska kunna använda externt Hive-metaarkiv bör den ange hive.metastore=hdi
egenskap. Mer information finns i Lägga till kataloger i befintliga kluster:
{
"fileName": "hive1.properties",
"values": {
"connector.name": "hive",
"hive.metastore": "hdi"
}
}
Fullständigt exempel
Om du vill konfigurera ett externt Hive-metaarkiv i ett befintligt Trino-kluster lägger du till de avsnitt som krävs i arm-mallen för klustret genom att referera till följande exempel:
{
"$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"
}
}
]
}
]
}
]
}
}
}
]
}
Distribuera den uppdaterade ARM-mallen för att återspegla ändringarna i klustret. Lär dig hur du distribuerar en ARM-mall. När den framgångsrikt har distribuerats kan du se katalogen "hive1" i ditt Trino-kluster.
Du kan köra några enkla frågor för att prova Hive-katalogen.
Kontrollera om Hive-katalogen har skapats framgångsrikt.
show catalogs;
Fråga en tabell (I det här exemplet är "hive1" namnet på den angivna hive-katalogen).
create schema hive1.schema1;
create table hive1.schema1.tpchorders as select * from tpch.tiny.orders;
select * from hive1.schema1.tpchorders limit 100;
Alternativ konfiguration
Alternativt kan externa Hive-metaarkivdatabasparametrar anges i trinoProfile.catalogOptions.hive
tillsammans med hive.metastore=hdi
katalogegenskap:
Egenskap | Beskrivning | Exempel |
---|---|---|
trinoProfile.catalogOptions.hive | En lista över Hive-, Iceberg- eller Delta-kataloger med parametrar för den externa Hive-metastore-databasen, vilket kräver parametrar för var och en. Om du vill använda en extern metaarkivdatabas måste katalogen finnas i den här listan. | |
trinoProfile.catalogOptions.hive[*].catalogName | Namnet på Trino-katalogen som har konfigurerats i serviceConfigsProfiles och är konfigurerad för att använda en extern Hive-metastore-databas. |
hive1 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL | JDBC-anslutningssträng till databas. | jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionUserName | SQL-användarnamn för att ansluta till databasen. | trinoadmin |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionPasswordSecret | Secret referenceName konfigurerat i secretsProfile med lösenord. | hms-db-pwd |
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir | ABFS-URI till en plats i lagringen där data lagras. | abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse |
Fullständigt exempel
{
"$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"
}
]
}
}
}
}
}
]
}