Używanie zewnętrznej bazy danych magazynu metadanych Hive
Uwaga
Wycofamy usługę Azure HDInsight w usłudze AKS 31 stycznia 2025 r. Przed 31 stycznia 2025 r. należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure, aby uniknąć nagłego zakończenia obciążeń. Pozostałe klastry w ramach subskrypcji zostaną zatrzymane i usunięte z hosta.
Tylko podstawowa pomoc techniczna będzie dostępna do daty wycofania.
Ważne
Ta funkcja jest aktualnie dostępna jako funkcja podglądu. Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure obejmują więcej warunków prawnych, które dotyczą funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje o tej konkretnej wersji zapoznawczej, zobacz Informacje o wersji zapoznawczej usługi Azure HDInsight w usłudze AKS. W przypadku pytań lub sugestii dotyczących funkcji prześlij żądanie w usłudze AskHDInsight , aby uzyskać szczegółowe informacje i postępuj zgodnie z nami, aby uzyskać więcej aktualizacji w społeczności usługi Azure HDInsight.
Magazyn metadanych Hive jest używany jako centralne repozytorium do przechowywania metadanych dotyczących danych. W tym artykule opisano sposób dodawania bazy danych magazynu metadanych Hive do klastra Trino za pomocą usługi HDInsight w usłudze AKS. Istnieją dwa sposoby:
Wykaz programu Hive można dodać i połączyć go z zewnętrzną bazą danych magazynu metadanych Hive podczas tworzenia klastra Trino.
Katalog hive można dodać i dołączyć zewnętrzną bazę danych magazynu metadanych Hive do klastra przy użyciu aktualizacji szablonu usługi ARM.
W poniższym przykładzie opisano dodawanie katalogu hive i bazy danych magazynu metadanych do klastra przy użyciu szablonu usługi ARM.
Wymagania wstępne
- Operacyjny klaster Trino z usługą HDInsight w usłudze AKS.
- Utwórz szablon usługi ARM dla klastra.
- Zapoznaj się z kompletnym przykładem szablonu usługi ARM klastra.
- Znajomość tworzenia i wdrażania szablonów usługi ARM.
Uwaga
- Obecnie obsługujemy usługę Azure SQL Database jako wbudowany magazyn metadanych.
- Ze względu na ograniczenie programu Hive znak "-" (łącznik) w nazwie bazy danych magazynu metadanych nie jest obsługiwany.
- Obsługiwane jest tylko jedno połączenie bazy danych magazynu metadanych. Wszystkie wykazy wymienione w
clusterProfile.trinoProfile.catalogOptions.hive
sekcji zostaną skonfigurowane tak, aby używały jednego i tych samych parametrów bazy danych, które zostały określone jako pierwsze.
Dodawanie zewnętrznej bazy danych magazynu metadanych Hive
Istnieje kilka ważnych sekcji, które należy dodać do szablonu usługi ARM klastra, aby skonfigurować katalog hive i bazę danych magazynu metadanych Hive:
Konfiguracja magazynu metadanych
Skonfiguruj zewnętrzną bazę danych magazynu metadanych Hive w config.properties
pliku:
{
"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"
}
}
Właściwości | opis | Przykład |
---|---|---|
hive.metastore.hdi.metastoreDbConnectionURL | Parametry połączenia JDBC do bazy danych. | jdbc:sqlserver://nazwa-serwera.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30 |
hive.metastore.hdi.metastoreDbConnectionUserName | Nazwa użytkownika SQL do nawiązania połączenia z bazą danych. | trinoadmin |
hive.metastore.hdi.metastoreDbConnectionPasswordSecret | Secret referenceName skonfigurowany w wpisach tajnychProfile z hasłem. | hms-db-pwd |
hive.metastore.hdi.metastoreWarehouseDir | Identyfikator URI ABFS do lokalizacji w magazynie, w którym są przechowywane dane. | abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse |
Uwierzytelnianie magazynu metadanych
Skonfiguruj uwierzytelnianie do zewnętrznej bazy danych magazynu metadanych Hive, określając wpisy tajne usługi Azure Key Vault.
Uwaga
referenceName
powinna być zgodna z wartością podaną w 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"
} ]
},
Właściwości | opis | Przykład |
---|---|---|
secretsProfile.keyVaultResourceId | Ciąg identyfikatora zasobu platformy Azure w usłudze Azure Key Vault, w którym są przechowywane wpisy tajne magazynu metadanych Hive. | /subscriptions/00000000-0000-0000-0000-00000000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv |
secretsProfile.secrets[*].referenceName | Unikatowa nazwa odwołania wpisu tajnego do późniejszego użycia w pliku clusterProfile. | Secret1_ref |
secretsProfile.secrets[*].type | Typ obiektu w usłudze Azure Key Vault, obsługiwany jest tylko wpis tajny. | Klucz tajny |
secretsProfile.secrets[*].keyVaultObjectName | Nazwa obiektu wpisu tajnego w usłudze Azure Key Vault zawierającego rzeczywistą wartość wpisu tajnego. | secret1 |
Konfiguracja wykazu
Aby katalog Trino używał zewnętrznego magazynu metadanych Hive, powinien określić hive.metastore=hdi
właściwość. Aby uzyskać więcej informacji, zobacz Dodawanie katalogów do istniejącego klastra:
{
"fileName": "hive1.properties",
"values": {
"connector.name": "hive",
"hive.metastore": "hdi"
}
}
Kompletny przykład
Aby skonfigurować zewnętrzny magazyn metadanych Hive do istniejącego klastra Trino, dodaj wymagane sekcje w szablonie usługi ARM klastra, korzystając z następującego przykładu:
{
"$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"
}
}
]
}
]
}
]
}
}
}
]
}
Wdróż zaktualizowany szablon usługi ARM, aby odzwierciedlić zmiany w klastrze. Dowiedz się, jak wdrożyć szablon usługi ARM. Po pomyślnym wdrożeniu katalog "hive1" będzie widoczny w klastrze Trino.
Możesz uruchomić kilka prostych zapytań, aby wypróbować katalog hive.
Sprawdź, czy wykaz hive został pomyślnie utworzony.
show catalogs;
Wykonaj zapytanie względem tabeli (w tym przykładzie "hive1" jest nazwą określonego katalogu hive).
create schema hive1.schema1;
create table hive1.schema1.tpchorders as select * from tpch.tiny.orders;
select * from hive1.schema1.tpchorders limit 100;
Konfiguracja alternatywna
Alternatywnie zewnętrzne parametry bazy danych magazynu metadanych Hive można określić razem trinoProfile.catalogOptions.hive
z właściwością hive.metastore=hdi
katalogu:
Właściwości | opis | Przykład |
---|---|---|
trinoProfile.catalogOptions.hive | Lista katalogów hive lub góry lodowej lub delty z parametrami zewnętrznej bazy danych magazynu metadanych Hive, wymagają parametrów dla każdego z nich. Aby użyć zewnętrznej bazy danych magazynu metadanych, wykaz musi znajdować się na tej liście. | |
trinoProfile.catalogOptions.hive[*].catalogName | Nazwa wykazu Trino skonfigurowanego w serviceConfigsProfiles programie , który został skonfigurowany do używania zewnętrznej bazy danych magazynu metadanych Programu Hive. |
hive1 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL | Parametry połączenia JDBC do bazy danych. | jdbc:sqlserver://nazwa-serwera.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionUserName | Nazwa użytkownika SQL do nawiązania połączenia z bazą danych. | trinoadmin |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionPasswordSecret | Secret referenceName skonfigurowany w wpisach tajnychProfile z hasłem. | hms-db-pwd |
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir | Identyfikator URI ABFS do lokalizacji w magazynie, w którym są przechowywane dane. | abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse |
Kompletny przykład
{
"$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"
}
]
}
}
}
}
}
]
}