Použití externí databáze metastoru Hive
Poznámka:
Azure HDInsight vyřadíme ze služby AKS 31. ledna 2025. Před 31. lednem 2025 budete muset migrovat úlohy do Microsoft Fabric nebo ekvivalentního produktu Azure, abyste se vyhnuli náhlému ukončení úloh. Zbývající clustery ve vašem předplatném se zastaví a odeberou z hostitele.
Do data vyřazení bude k dispozici pouze základní podpora.
Důležité
Tato funkce je aktuálně dostupná jako ukázková verze. Doplňkové podmínky použití pro Microsoft Azure Preview obsahují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nejsou vydány v obecné dostupnosti. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight o službě AKS ve verzi Preview. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás o dalších aktualizacích 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:
Během vytváření clusteru Trino můžete přidat katalog Hive a propojit ho s externí databází metastoru Hive.
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 kompletní 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í Hivu se nepodporuje znak -( spojovník) v názvu databáze metastoru.
- Podporuje se pouze jedno připojení k databázi metastoru. Všechny katalogy uvedené v
clusterProfile.trinoProfile.catalogOptions.hive
části budou nakonfigurovány tak, aby používaly jeden a stejné parametry databáze, které jsou zadány jako první.
Přidání externí databáze metastoru Hive
Do šablony ARM clusteru je potřeba 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 config.properties
souboru:
{
"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 | JDBC připojovací řetězec do databáze. | 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 | Název odkazu na tajný kód nakonfigurovaný v souboru secretsProfile s heslem. | hms-db-pwd |
hive.metastore.hdi.metastoreWarehouseDir | Identifikátor URI ABFS do umístění v úložišti, kde jsou uložená data. | 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 měla odpovídat hodnotě zadané 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 se podporuje jenom "Tajný kód". | 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 trinoProfile.catalogOptions.hive
externí parametry databáze metastoru Hive společně s hive.metastore=hdi
vlastností katalogu:
Vlastnost | Popis | Příklad |
---|---|---|
trinoProfile.catalogOptions.hive | Seznam hive nebo icebergů nebo rozdílových katalogů s parametry externí databáze metastoru Hive vyžadují 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 adresáři , který je nakonfigurovaný tak, aby používal externí databázi metastoru Hive. |
hive1 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL | JDBC připojovací řetězec do databáze. | 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 | Identifikátor URI ABFS do umístění v úložišti, kde jsou uložená data. | 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"
}
]
}
}
}
}
}
]
}