Dış Hive meta veri deposu veritabanını kullanma
Not
31 Ocak 2025'te AKS'de Azure HDInsight'ı kullanımdan kaldırmaya devam edeceğiz. 31 Ocak 2025'den önce, iş yüklerinizin aniden sonlandırılmasını önlemek için iş yüklerinizi Microsoft Fabric'e veya eşdeğer bir Azure ürününe geçirmeniz gerekir. Aboneliğinizdeki kalan kümeler durdurulur ve konaktan kaldırılır.
Kullanımdan kaldırma tarihine kadar yalnızca temel destek sağlanacaktır.
Önemli
Bu özellik şu anda önizlemededir. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları, beta, önizleme aşamasında olan veya henüz genel kullanıma sunulmamış Azure özellikleri için geçerli olan daha fazla yasal hüküm içerir. Bu belirli önizleme hakkında bilgi için bkz . AKS üzerinde Azure HDInsight önizleme bilgileri. Sorular veya özellik önerileri için lütfen AskHDInsight'ta ayrıntıları içeren bir istek gönderin ve Azure HDInsight Topluluğu hakkında daha fazla güncelleştirme için bizi takip edin.
Hive meta veri deposu, veriler hakkındaki meta verileri depolamak için merkezi bir depo olarak kullanılır. Bu makalede AKS üzerinde HDInsight ile Trino kümenize nasıl Hive meta veri deposu veritabanı ekleyebileceğiniz açıklanmaktadır. bunun iki yolu vardır:
Trino kümesi oluşturma sırasında bir Hive kataloğu ekleyebilir ve bunu bir dış Hive meta veri deposu veritabanına bağlayabilirsiniz.
ARM şablon güncelleştirmesini kullanarak bir Hive kataloğu ekleyebilir ve kümenize bir dış Hive meta veri deposu veritabanı ekleyebilirsiniz.
Aşağıdaki örnek, ARM şablonunu kullanarak kümenize Hive kataloğu ve meta veri deposu veritabanının eklenmesini kapsar.
Önkoşullar
- AKS üzerinde HDInsight ile operasyonel bir Trino kümesi.
- Kümeniz için ARM şablonu oluşturun.
- Tüm küme ARM şablonu örneğini gözden geçirin.
- ARM şablonu yazma ve dağıtma hakkında bilgi.
Not
- Şu anda Azure SQL Veritabanı yerleşik meta veri deposu olarak destekliyoruz.
- Hive sınırlaması nedeniyle meta veri deposu veritabanı adındaki "-" (kısa çizgi) karakteri desteklenmez.
- Yalnızca tek meta veri deposu veritabanı bağlantısı desteklenir, bölümünde listelenen
clusterProfile.trinoProfile.catalogOptions.hive
tüm kataloglar ilk olarak belirtilen bir ve aynı veritabanı parametrelerini kullanacak şekilde yapılandırılır.
Dış Hive meta veri deposu veritabanı ekleme
Hive kataloğunu ve Hive meta veri deposu veritabanını yapılandırmak için küme ARM şablonunuza eklemeniz gereken birkaç önemli bölüm vardır:
Meta veri deposu yapılandırması
Dosyada config.properties
dış Hive meta veri deposu veritabanını yapılandırın:
{
"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"
}
}
Özellik | Açıklama | Örnek |
---|---|---|
hive.metastore.hdi.metastoreDbConnectionURL | JDBC veritabanına bağlantı dizesi. | jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30 |
hive.metastore.hdi.metastoreDbConnectionUserName | Veritabanına bağlanmak için SQL kullanıcı adı. | trinoadmin |
hive.metastore.hdi.metastoreDbConnectionPasswordSecret | Gizli dizilerde yapılandırılan gizli dizi başvuruAdıProfil ile parola. | hms-db-pwd |
hive.metastore.hdi.metastoreWarehouseDir | ABFS URI'sini kullanarak verilerin depolandığı depolama alanına gidin. | abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse |
Meta veri deposu kimlik doğrulaması
Azure Key Vault gizli dizilerini belirten dış Hive meta veri deposu veritabanına kimlik doğrulamasını yapılandırın.
Not
referenceName
içinde sağlanan değerle eşleşmelidir 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"
} ]
},
Özellik | Açıklama | Örnek |
---|---|---|
secretsProfile.keyVaultResourceId | Hive meta veri deposu gizli dizilerinin depolandığı Azure Key Vault'a yönelik Azure kaynak kimliği dizesi. | /subscriptions/0000000-0000-0000-0000-00000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv |
secretsProfile.secrets[*].referenceName | clusterProfile'da daha sonra kullanılacak gizli dizinin benzersiz başvuru adı. | Secret1_ref |
secretsProfile.secrets[*].type | Azure Key Vault'taki nesne türü, yalnızca "Gizli Dizi" desteklenir. | Gizli dizi |
secretsProfile.secrets[*].keyVaultObjectName | Azure Key Vault'ta gerçek gizli dizi değerini içeren gizli dizi nesnesinin adı. | gizli dizi1 |
Katalog yapılandırması
Trino kataloğunun dış Hive meta veri deposu kullanması için özelliği belirtmelidir hive.metastore=hdi
. Daha fazla bilgi için bkz . Mevcut kümeye katalog ekleme:
{
"fileName": "hive1.properties",
"values": {
"connector.name": "hive",
"hive.metastore": "hdi"
}
}
Tam örnek
Dış Hive meta veri depolarını mevcut bir Trino kümesine yapılandırmak için, aşağıdaki örne başvurarak küme ARM şablonunuza gerekli bölümleri ekleyin:
{
"$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"
}
}
]
}
]
}
]
}
}
}
]
}
Güncelleştirilmiş ARM şablonunu kümenizdeki değişiklikleri yansıtacak şekilde dağıtın. ARM şablonu dağıtmayı öğrenin. Başarıyla dağıtıldıktan sonra Trino kümenizde "hive1" kataloğunu görebilirsiniz.
Hive kataloğunu denemek için birkaç basit sorgu çalıştırabilirsiniz.
Hive kataloğunun başarıyla oluşturulup oluşturulmadiğini denetleyin.
show catalogs;
Tabloyu sorgulama (Bu örnekte, "hive1" belirtilen hive kataloğunun adıdır).
create schema hive1.schema1;
create table hive1.schema1.tpchorders as select * from tpch.tiny.orders;
select * from hive1.schema1.tpchorders limit 100;
Alternatif yapılandırma
Alternatif olarak, içinde dış Hive meta veri deposu veritabanı parametreleri katalog özelliğiyle hive.metastore=hdi
birlikte belirtilebilirtrinoProfile.catalogOptions.hive
:
Özellik | Açıklama | Örnek |
---|---|---|
trinoProfile.catalogOptions.hive | Dış Hive meta veri deposu veritabanı parametrelerine sahip Hive veya buzdağı veya delta kataloglarının listesi, her biri için parametre gerektirir. Dış meta veri deposu veritabanını kullanmak için kataloğun bu listede mevcut olması gerekir. | |
trinoProfile.catalogOptions.hive[*].catalogName | içinde yapılandırılan serviceConfigsProfiles ve dış Hive meta veri deposu veritabanını kullanacak şekilde yapılandırılan Trino kataloğunun adı. |
hive1 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionURL | JDBC veritabanına bağlantı dizesi. | jdbc:sqlserver://server-name.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30 |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionUserName | Veritabanına bağlanmak için SQL kullanıcı adı. | trinoadmin |
trinoProfile.catalogOptions.hive[*].metastoreDbConnectionPasswordSecret | Gizli dizilerde yapılandırılan gizli dizi başvuruAdıProfil ile parola. | hms-db-pwd |
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir | ABFS URI'sini kullanarak verilerin depolandığı depolama alanına gidin. | abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse |
Tam örnek
{
"$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"
}
]
}
}
}
}
}
]
}