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
- Provozní cluster Trino se službou HDInsight v AKS.
- Vytvořte šablonu ARM pro váš cluster.
- Projděte si úplnou ukázku šablony ARM clusteru.
- Znalost vytváření a nasazování šablon ARM.
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"
}
]
}
}
}
}
}
]
}