Share via


Külső Hive metaadattár-adatbázis használata

Fontos

Ez a szolgáltatás jelenleg előzetes kiadásban elérhető. A Microsoft Azure Előzetes verzió kiegészítő használati feltételei további jogi feltételeket tartalmaznak, amelyek a bétaverzióban, előzetes verzióban vagy egyébként még nem általánosan elérhető Azure-funkciókra vonatkoznak. Erről az adott előzetes verzióról az Azure HDInsight az AKS előzetes verziójában tájékozódhat. Ha kérdése vagy funkciójavaslata van, küldjön egy kérést az AskHDInsightban a részletekkel együtt, és kövessen minket további frissítésekért az Azure HDInsight-közösségről.

A Hive metaadattár az adatok metaadatainak tárolására szolgál központi adattárként. Ez a cikk azt ismerteti, hogyan adhat hozzá Hive metaadattár-adatbázist a Trino-fürthöz a HDInsighttal az AKS-en. Kétféleképpen lehet:

  • A Trino-fürt létrehozása során hozzáadhat egy Hive-katalógust, és csatolhatja egy külső Hive-metaadattár-adatbázishoz.

  • Arm-sablonfrissítéssel hozzáadhat egy Hive-katalógust, és külső Hive metaadattár-adatbázist csatolhat a fürthöz.

Az alábbi példa a Hive-katalógus és a metaadattár-adatbázis ARM-sablonnal való hozzáadását mutatja be a fürthöz.

Előfeltételek

Feljegyzés

  • Jelenleg beépített metaadattárként támogatjuk az Azure SQL Database-t.
  • A Hive korlátozása miatt a metaadattár-adatbázis nevének "-" (kötőjel) karaktere nem támogatott.
  • Csak egyetlen metaadattár-adatbázis-kapcsolat támogatott, a szakaszban felsorolt clusterProfile.trinoProfile.catalogOptions.hive összes katalógus úgy lesz konfigurálva, hogy az előbb megadott adatbázisparamétereket használja.

Külső Hive metaadattár-adatbázis hozzáadása

Néhány fontos szakaszt hozzá kell adnia a fürt ARM-sablonjához a Hive-katalógus és a Hive metaadattár-adatbázis konfigurálásához:

Metaadattár konfigurálása

Külső Hive metaadattár-adatbázis konfigurálása a fájlban config.properties :

{
    "fileName": "config.properties",
    "values": {
        "hive.metastore.hdi.metastoreDbConnectionURL": "jdbc:sqlserver://mysqlserver1.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"
    }
}
Tulajdonság Leírás Példa
hive.metastore.hdi.metastoreDb Csatlakozás ionURL A JDBC kapcsolati sztring adatbázisba. jdbc:sqlserver://mysqlserver1.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
hive.metastore.hdi.metastoreDb Csatlakozás ionUserName SQL-felhasználónév az adatbázishoz való csatlakozáshoz. trinoadmin
hive.metastore.hdi.metastoreDb Csatlakozás ionPasswordSecret Titkos kulcshivatkozásNév a titkos kulcsprofilban jelszóval konfigurálva. hms-db-pwd
hive.metastore.hdi.metastoreWarehouseDir ABFS URI az adatok tárolására szolgáló tárolóhelyre. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Metaadattár-hitelesítés

Konfigurálja a hitelesítést külső Hive metaadattár-adatbázisra, amely megadja az Azure Key Vault titkos kulcsokat.

Feljegyzés

referenceName meg kell egyeznie a következőben megadott értékkel: 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"
        }                        ]
},
Tulajdonság Leírás Példa
secretsProfile.keyVaultResourceId Az Azure-erőforrás-azonosító sztringje az Azure Key Vaultba, ahol a Hive metaadattár titkos kulcsainak tárolása történik. /subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv
secretsProfile.secrets[*].referenceName A fürtProfile későbbi részében használandó titkos kód egyedi hivatkozásneve. Secret1_ref
secretsProfile.secrets[*].type Az Azure Key Vaultban csak a "Titkos" objektumtípus támogatott. Titkos
secretsProfile.secrets[*].keyVaultObjectName Az Azure Key Vault titkos objektumának neve, amely tényleges titkos értéket tartalmaz. titkos kód1

Katalóguskonfiguráció

Ahhoz, hogy egy Trino-katalógus külső Hive metaadattárat használhasson, meg kell adnia a tulajdonságot hive.metastore=hdi . További információ: Katalógusok hozzáadása meglévő fürthöz:

{
    "fileName": "hive1.properties",
    "values": {
        "connector.name": "hive",
        "hive.metastore": "hdi"
    }
}

Példa kitöltése

Ha külső Hive metaadattárat szeretne konfigurálni egy meglévő Trino-fürthöz, adja hozzá a fürt ARM-sablonjának szükséges szakaszait az alábbi példára hivatkozva:

{
    "$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://mysqlserver1.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"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        }
    ]
}

Telepítse a frissített ARM-sablont a fürt változásainak megfelelően. Megtudhatja, hogyan helyezhet üzembe ARM-sablont. A sikeres üzembe helyezés után megjelenik a "hive1" katalógus a Trino-fürtben.

A Hive-katalógus kipróbálásához futtathat néhány egyszerű lekérdezést.

Ellenőrizze, hogy sikeresen létrejött-e a Hive-katalógus.

show catalogs;

Tábla lekérdezése (Ebben a példában a "hive1" a megadott hive-katalógus neve).

create schema hive1.schema1;
create table hive1.schema1.tpchorders as select * from tpch.tiny.orders;
select * from hive1.schema1.tpchorders limit 100;

Alternatív konfiguráció

Másik lehetőségként külső Hive metaadattár-adatbázisparaméterek is megadhatóak a trinoProfile.catalogOptions.hive katalógustulajdonságokkal hive.metastore=hdi együtt:

Tulajdonság Leírás Példa
trinoProfile.catalogOptions.hive A Hive-, jéghegy- vagy deltakatalógusok listája külső Hive metaadattár-adatbázis paramétereivel, mindegyikhez paraméterek szükségesek. Külső metaadattár-adatbázis használatához a katalógusnak szerepelnie kell ebben a listában.
trinoProfile.catalogOptions.hive[*].catalogName A külső Hive metaadattár-adatbázis használatára konfigurált serviceConfigsProfilesTrino-katalógus neve. hive1
trinoProfile.catalogOptions.hive[*].metastoreDb Csatlakozás ionURL A JDBC kapcsolati sztring adatbázisba. jdbc:sqlserver://mysqlserver1.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
trinoProfile.catalogOptions.hive[*].metastoreDb Csatlakozás ionUserName SQL-felhasználónév az adatbázishoz való csatlakozáshoz. trinoadmin
trinoProfile.catalogOptions.hive[*].metastoreDb Csatlakozás ionPasswordSecret Titkos kulcshivatkozásNév a titkos kulcsprofilban jelszóval konfigurálva. hms-db-pwd
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir ABFS URI az adatok tárolására szolgáló tárolóhelyre. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Példa kitöltése

{
    "$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://mysqlserver1.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"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]
}