Mengonfigurasi pengaturan penyebaran untuk sumber daya dan layanan Kluster Big Data
Berlaku untuk: SQL Server 2019 (15.x)
Penting
Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk SQL Server 2019 Kluster Big Data akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung sepenuhnya pada platform dan perangkat lunak akan terus dipertahankan melalui pembaruan kumulatif SQL Server hingga saat itu. Untuk informasi selengkapnya, lihat posting blog pengumuman dan Opsi big data di platform Microsoft SQL Server.
Mulai dari serangkaian profil konfigurasi yang telah ditentukan sebelumnya yang disertakan dalam alat manajemen Azure Data CLI (azdata
), Anda dapat dengan mudah memodifikasi pengaturan default agar lebih sesuai dengan persyaratan beban kerja BDC Anda. Struktur file konfigurasi memungkinkan Anda memperbarui pengaturan secara terperinci untuk setiap layanan sumber daya.
Catatan
Kluster Big Data versi CU9+ memiliki dukungan untuk fungsionalitas manajemen konfigurasi. Fitur ini memungkinkan konfigurasi pasca-penyebaran dan memberikan peningkatan visibilitas dan konfigurasi kluster. Versi CU8 dan yang lebih rendah tidak memiliki fungsionalitas dan konfigurasi ini hanya dapat dilakukan pada waktu penyebaran.
Tonton video 13 menit ini untuk gambaran umum konfigurasi kluster big data:
Tip
Silakan referensikan artikel tentang cara mengonfigurasi ketersediaan tinggi untuk komponen penting misi seperti master SQL Server atau node nama HDFS, untuk detail tentang cara menyebarkan layanan yang sangat tersedia.
Tip
Referensikan artikel Properti Konfigurasi Kluster Big Data SQL Server untuk melihat pengaturan apa yang dapat dikonfigurasi. Untuk versi CU8 atau yang lebih rendah, referensi Properti Konfigurasi Instans Master SQL Server - Rilis Pra CU9 untuk konfigurasi yang tersedia untuk instans master SQL Server dan properti konfigurasi Apache Spark & Apache Hadoop (HDFS) untuk properti Apache Spark dan Hadoop.
Anda juga dapat mengatur konfigurasi tingkat sumber daya atau memperbarui konfigurasi untuk semua layanan dalam sumber daya. Berikut adalah ringkasan struktur untuk bdc.json
:
{
"apiVersion": "v1",
"metadata": {
"kind": "BigDataCluster",
"name": "mssql-cluster"
},
"spec": {
"resources": {
"nmnode-0": {...
},
"sparkhead": {...
},
"zookeeper": {...
},
"gateway": {...
},
"appproxy": {...
},
"master": {...
},
"compute-0": {...
},
"data-0": {...
},
"storage-0": {...
},
"services": {
"sql": {
"resources": [
"master",
"compute-0",
"data-0",
"storage-0"
]
},
"hdfs": {
"resources": [
"nmnode-0",
"zookeeper",
"storage-0",
"sparkhead"
],
"settings": {...
},
"spark": {
"resources": [
"sparkhead",
"storage-0"
],
"settings": {...
}
}
}
}
Untuk memperbarui konfigurasi tingkat sumber daya seperti instans dalam kumpulan, Anda akan memperbarui spesifikasi sumber daya. Misalnya, untuk memperbarui jumlah instans di kumpulan komputasi, Anda akan memodifikasi bagian ini dalam bdc.json
file konfigurasi:
"resources": {
...
"compute-0": {
"metadata": {
"kind": "Pool",
"name": "default"
},
"spec": {
"type": "Compute",
"replicas": 4
}
}
...
}
Demikian pula untuk mengubah pengaturan satu layanan dalam sumber daya tertentu. Misalnya, jika Anda ingin mengubah pengaturan memori Spark hanya untuk komponen Spark di kumpulan Penyimpanan, Anda akan memperbarui storage-0
sumber daya dengan settings
bagian untuk spark
layanan dalam bdc.json
file konfigurasi.
"resources":{
...
"storage-0": {
"metadata": {
"kind": "Pool",
"name": "default"
},
"spec": {
"type": "Storage",
"replicas": 2,
"settings": {
"spark": {
"spark-defaults-conf.spark.driver.memory": "2g",
"spark-defaults-conf.spark.driver.cores": "1",
"spark-defaults-conf.spark.executor.instances": "3",
"spark-defaults-conf.spark.executor.memory": "1536m",
"spark-defaults-conf.spark.executor.cores": "1",
"yarn-site.yarn.nodemanager.resource.memory-mb": "18432",
"yarn-site.yarn.nodemanager.resource.cpu-vcores": "6",
"yarn-site.yarn.scheduler.maximum-allocation-mb": "18432",
"yarn-site.yarn.scheduler.maximum-allocation-vcores": "6",
"yarn-site.yarn.scheduler.capacity.maximum-am-resource-percent": "0.3"
}
}
}
}
...
}
Jika Anda ingin menerapkan konfigurasi yang sama untuk layanan yang terkait dengan beberapa sumber daya, Anda akan memperbarui yang sesuai settings
di bagian tersebut services
. Misalnya, jika Anda ingin mengatur pengaturan yang sama untuk Spark di seluruh kumpulan penyimpanan dan kumpulan Spark, Anda akan memperbarui settings
bagian di spark
bagian layanan dalam bdc.json
file konfigurasi.
"services": {
...
"spark": {
"resources": [
"sparkhead",
"storage-0"
],
"settings": {
"spark-defaults-conf.spark.driver.memory": "2g",
"spark-defaults-conf.spark.driver.cores": "1",
"spark-defaults-conf.spark.executor.instances": "3",
"spark-defaults-conf.spark.executor.memory": "1536m",
"spark-defaults-conf.spark.executor.cores": "1",
"yarn-site.yarn.nodemanager.resource.memory-mb": "18432",
"yarn-site.yarn.nodemanager.resource.cpu-vcores": "6",
"yarn-site.yarn.scheduler.maximum-allocation-mb": "18432",
"yarn-site.yarn.scheduler.maximum-allocation-vcores": "6",
"yarn-site.yarn.scheduler.capacity.maximum-am-resource-percent": "0.3"
}
}
...
}
Untuk menyesuaikan file konfigurasi penyebaran kluster, Anda dapat menggunakan editor format JSON apa pun, seperti VSCode. Untuk membuat skrip pengeditan ini untuk tujuan otomatisasi, gunakan azdata bdc config
perintah . Artikel ini menjelaskan cara mengonfigurasi penyebaran kluster big data dengan memodifikasi file konfigurasi penyebaran. Ini memberikan contoh tentang cara mengubah konfigurasi untuk skenario yang berbeda. Untuk informasi selengkapnya tentang cara file konfigurasi digunakan dalam penyebaran, lihat panduan penyebaran.
Prasyarat
Masing-masing contoh di bagian ini mengasumsikan bahwa Anda telah membuat salinan salah satu konfigurasi standar. Untuk informasi selengkapnya, lihat Membuat konfigurasi kustom. Misalnya, perintah berikut membuat direktori yang disebut
custom-bdc
berisi dua file konfigurasi penyebaran JSON, dancontrol.json
,bdc.json
berdasarkan konfigurasi defaultaks-dev-test
:azdata bdc config init --source aks-dev-test --target custom-bdc
Peringatan
Parameter imagePullPolicy
diperlukan untuk diatur sebagai "Always"
dalam profil penyebaran control.json file.
Mengubah registri, repositori, dan tag gambar Docker default
File konfigurasi bawaan, khususnya control.json mencakup docker
bagian di mana registri kontainer, repositori, dan tag gambar telah diisi sebelumnya. Secara default, gambar yang diperlukan untuk kluster big data ada di Microsoft Container Registry (mcr.microsoft.com
), di mssql/bdc
repositori:
{
"apiVersion": "v1",
"metadata": {
"kind": "Cluster",
"name": "mssql-cluster"
},
"spec": {
"docker": {
"registry": "mcr.microsoft.com",
"repository": "mssql/bdc",
"imageTag": "2019-GDR1-ubuntu-16.04",
"imagePullPolicy": "Always"
},
...
}
}
Sebelum penyebaran, Anda dapat menyesuaikan docker
pengaturan dengan mengedit control.json
file konfigurasi secara langsung atau menggunakan azdata bdc config
perintah. Misalnya, perintah berikut memperbarui custom-bdc
file konfigurasi control.json dengan yang berbeda <registry>
, <repository>
dan <image_tag>
:
azdata bdc config replace -c custom-bdc/control.json -j "$.spec.docker.registry=<registry>"
azdata bdc config replace -c custom-bdc/control.json -j "$.spec.docker.repository=<repository>"
azdata bdc config replace -c custom-bdc/control.json -j "$.spec.docker.imageTag=<image_tag>"
Tip
Sebagai praktik terbaik, Anda harus menggunakan tag gambar khusus versi dan menghindari penggunaan latest
tag gambar, karena ini dapat mengakibatkan ketidakcocokan versi yang akan menyebabkan masalah kesehatan kluster.
Tip
Penyebaran kluster big data harus memiliki akses ke registri kontainer dan repositori untuk menarik gambar kontainer. Jika lingkungan Anda tidak memiliki akses ke Microsoft Container Registry default, Anda dapat melakukan penginstalan offline di mana gambar yang diperlukan pertama kali ditempatkan ke repositori Docker privat. Untuk informasi selengkapnya tentang penginstalan offline, lihat Melakukan penyebaran offline kluster big data SQL Server. Perhatikan bahwa Anda harus mengatur DOCKER_USERNAME
variabel lingkungan dan DOCKER_PASSWORD
sebelum mengeluarkan penyebaran untuk memastikan alur kerja penyebaran memiliki akselerasi ke repositori privat Anda untuk menarik gambar dari.
Ubah nama kluster
Nama kluster adalah nama kluster big data dan namespace Layanan Kubernetes yang akan dibuat pada penyebaran. Ini ditentukan dalam bagian berikut dari bdc.json
file konfigurasi penyebaran:
"metadata": {
"kind": "BigDataCluster",
"name": "mssql-cluster"
},
Perintah berikut mengirimkan pasangan kunci-nilai ke --json-values
parameter untuk mengubah nama kluster big data menjadi test-cluster
:
azdata bdc config replace --config-file custom-bdc/bdc.json --json-values "metadata.name=test-cluster"
Penting
Nama kluster big data Anda harus hanya karakter alfa-numerik huruf kecil, tanpa spasi. Semua artefak Kubernetes (kontainer, pod, set statefull, layanan) untuk kluster akan dibuat di namespace dengan nama yang sama dengan nama kluster yang ditentukan.
Memperbarui port titik akhir
Titik akhir didefinisikan untuk pengontrol di control.json
dan untuk gateway dan instans master SQL Server di bagian yang sesuai di bdc.json
. Bagian control.json
file konfigurasi berikut menunjukkan definisi titik akhir untuk pengontrol:
{
"endpoints": [
{
"name": "Controller",
"serviceType": "LoadBalancer",
"port": 30080
},
{
"name": "ServiceProxy",
"serviceType": "LoadBalancer",
"port": 30777
}
]
}
Contoh berikut menggunakan JSON sebaris untuk mengubah port untuk controller
titik akhir:
azdata bdc config replace --config-file custom-bdc/control.json --json-values "$.spec.endpoints[?(@.name==""Controller"")].port=30000"
Mengonfigurasi skala
Konfigurasi setiap sumber daya, seperti kumpulan penyimpanan, ditentukan dalam bdc.json
file konfigurasi. Misalnya, bagian berikut dari bdc.json
menunjukkan storage-0
definisi sumber daya:
"storage-0": {
"metadata": {
"kind": "Pool",
"name": "default"
},
"spec": {
"type": "Storage",
"replicas": 2,
"settings": {
"spark": {
"spark-defaults-conf.spark.driver.memory": "2g",
"spark-defaults-conf.spark.driver.cores": "1",
"spark-defaults-conf.spark.executor.instances": "3",
"spark-defaults-conf.spark.executor.memory": "1536m",
"spark-defaults-conf.spark.executor.cores": "1",
"yarn-site.yarn.nodemanager.resource.memory-mb": "18432",
"yarn-site.yarn.nodemanager.resource.cpu-vcores": "6",
"yarn-site.yarn.scheduler.maximum-allocation-mb": "18432",
"yarn-site.yarn.scheduler.maximum-allocation-vcores": "6",
"yarn-site.yarn.scheduler.capacity.maximum-am-resource-percent": "0.3"
}
}
}
}
Anda dapat mengonfigurasi jumlah instans dalam penyimpanan, komputasi, dan/atau kumpulan data dengan memodifikasi replicas
nilai untuk setiap kumpulan. Contoh berikut menggunakan JSON sebaris untuk mengubah nilai-nilai ini untuk penyimpanan, komputasi, dan kumpulan data menjadi 10
, 4
dan 4
masing-masing:
azdata bdc config replace --config-file custom-bdc/bdc.json --json-values "$.spec.resources.storage-0.spec.replicas=10"
azdata bdc config replace --config-file custom-bdc/bdc.json --json-values "$.spec.resources.compute-0.spec.replicas=4"
azdata bdc config replace --config-file custom-bdc/bdc.json --json-values "$.spec.resources.data-0.spec.replicas=4"
Catatan
Jumlah maksimum instans yang divalidasi untuk komputasi dan kumpulan data adalah 8
masing-masing. Tidak ada penegakan batas ini pada waktu penyebaran, tetapi kami tidak menyarankan untuk mengonfigurasi skala yang lebih tinggi dalam penyebaran produksi.
Mengonfigurasi penyimpanan
Anda juga dapat mengubah kelas penyimpanan dan karakteristik yang digunakan untuk setiap kumpulan. Contoh berikut menetapkan kelas penyimpanan kustom ke penyimpanan dan kumpulan data dan memperbarui ukuran klaim volume persisten untuk menyimpan data menjadi 500 Gb untuk HDFS (kumpulan penyimpanan) dan 100 Gb untuk master dan kumpulan data.
Tip
Untuk informasi selengkapnya tentang konfigurasi penyimpanan, lihat Persistensi data dengan kluster big data SQL Server di Kubernetes.
Pertama-tama buat file patch.json seperti di bawah ini yang menyesuaikan pengaturan penyimpanan
{
"patch": [
{
"op": "add",
"path": "spec.resources.storage-0.spec.storage",
"value": {
"data": {
"size": "500Gi",
"className": "default",
"accessMode": "ReadWriteOnce"
},
"logs": {
"size": "30Gi",
"className": "default",
"accessMode": "ReadWriteOnce"
}
}
},
{
"op": "add",
"path": "spec.resources.master.spec.storage",
"value": {
"data": {
"size": "100Gi",
"className": "default",
"accessMode": "ReadWriteOnce"
},
"logs": {
"size": "30Gi",
"className": "default",
"accessMode": "ReadWriteOnce"
}
}
},
{
"op": "add",
"path": "spec.resources.data-0.spec.storage",
"value": {
"data": {
"size": "100Gi",
"className": "default",
"accessMode": "ReadWriteOnce"
},
"logs": {
"size": "30Gi",
"className": "default",
"accessMode": "ReadWriteOnce"
}
}
}
]
}
Anda kemudian dapat menggunakan azdata bdc config patch
perintah untuk memperbarui bdc.json
file konfigurasi.
azdata bdc config patch --config-file custom-bdc/bdc.json --patch ./patch.json
Catatan
File konfigurasi berdasarkan kubeadm-dev-test
tidak memiliki definisi penyimpanan untuk setiap kumpulan, tetapi Anda dapat menggunakan proses di atas untuk ditambahkan jika diperlukan.
Mengonfigurasi kumpulan penyimpanan tanpa spark
Anda juga dapat mengonfigurasi kumpulan penyimpanan untuk dijalankan tanpa spark dan membuat kumpulan spark terpisah. Konfigurasi ini memungkinkan Anda menskalakan daya komputasi spark yang independen dari penyimpanan. Untuk melihat cara mengonfigurasi kumpulan spark, lihat bagian Membuat kumpulan spark di artikel ini.
Catatan
Menyebarkan kluster big data tanpa Spark tidak didukung. Jadi Anda harus mengatur includeSpark
ke true
atau Anda harus membuat kumpulan spark terpisah dengan setidaknya satu instans. Anda juga dapat meminta Spark menjalankan keduanya di kumpulan penyimpanan (includeSpark
adalah true
) dan memiliki kumpulan Spark terpisah.
Secara default, includeSpark
pengaturan untuk sumber daya kumpulan penyimpanan diatur ke true, jadi Anda harus mengedit includeSpark
bidang ke konfigurasi penyimpanan untuk membuat perubahan. Perintah berikut menunjukkan cara mengedit nilai ini menggunakan json sebaris.
azdata bdc config replace --config-file custom-bdc/bdc.json --json-values "$.spec.resources.storage-0.spec.settings.spark.includeSpark=false"
Membuat kumpulan spark
Anda dapat membuat kumpulan Spark sebagai tambahan, atau alih-alih instans Spark yang berjalan di kumpulan penyimpanan. Contoh berikut menunjukkan cara membuat kumpulan spark dengan dua instans dengan menambal bdc.json
file konfigurasi.
Pertama, buat spark-pool-patch.json
file seperti di bawah ini:
{
"patch": [
{
"op": "add",
"path": "spec.resources.spark-0",
"value": {
"metadata": {
"kind": "Pool",
"name": "default"
},
"spec": {
"type": "Spark",
"replicas": 2
}
}
},
{
"op": "add",
"path": "spec.services.spark.resources/-",
"value": "spark-0"
},
{
"op": "add",
"path": "spec.services.hdfs.resources/-",
"value": "spark-0"
}
]
}
Kemudian jalankan azdata bdc config patch
perintah:
azdata bdc config patch -c custom-bdc/bdc.json -p spark-pool-patch.json
Mengonfigurasi penempatan pod menggunakan label Kubernetes
Anda dapat mengontrol penempatan pod pada simpul Kubernetes yang memiliki sumber daya khusus untuk mengakomodasi berbagai jenis persyaratan beban kerja. Dengan menggunakan label Kubernetes, Anda dapat menyesuaikan node mana yang ada di kluster Kubernetes akan digunakan untuk menyebarkan sumber daya kluster big data, tetapi juga membatasi simpul mana yang digunakan untuk sumber daya tertentu.
Misalnya, Anda mungkin ingin memastikan pod sumber daya kumpulan penyimpanan ditempatkan pada simpul dengan lebih banyak penyimpanan, sementara instans master SQL Server ditempatkan pada simpul yang memiliki sumber daya CPU dan memori yang lebih tinggi. Dalam hal ini, Anda akan terlebih dahulu membangun kluster Kubernetes heterogen dengan berbagai jenis perangkat keras dan kemudian menetapkan label node yang sesuai. Pada saat menyebarkan kluster big data, Anda dapat menentukan label yang sama pada tingkat kluster untuk menunjukkan simpul mana yang digunakan untuk kluster big data menggunakan clusterLabel
atribut dalam control.json
file. Kemudian, label yang berbeda akan digunakan untuk penempatan tingkat kumpulan. Label ini dapat ditentukan dalam file konfigurasi penyebaran kluster big data menggunakan nodeLabel
atribut. Kubernetes menetapkan pod pada simpul yang cocok dengan label yang ditentukan. Kunci label spesifik yang perlu ditambahkan ke simpul di kluster kubernetes adalah mssql-cluster
(untuk menunjukkan node mana yang digunakan untuk kluster big data) dan mssql-resource
(untuk menunjukkan simpul spesifik mana pod ditempatkan untuk berbagai sumber daya). Nilai label ini dapat berupa string apa pun yang Anda pilih.
Catatan
Karena sifat pod yang melakukan pengumpulan metrik tingkat simpul, metricsdc
pod disebarkan pada semua simpul dengan mssql-cluster
label, dan mssql-resource
tidak akan berlaku untuk pod ini.
Contoh berikut menunjukkan cara mengedit file konfigurasi kustom untuk menyertakan label bdc
node untuk seluruh kluster big data, label bdc-master
untuk menempatkan pod instans master SQL Server pada simpul tertentu, bdc-storage-pool
untuk sumber daya kumpulan penyimpanan, bdc-compute-pool
untuk kumpulan komputasi dan pod kumpulan data, dan bdc-shared
untuk sumber daya lainnya.
Label pertama simpul Kubernetes:
kubectl label node <kubernetesNodeName1> mssql-cluster=bdc mssql-resource=bdc-shared --overwrite=true
kubectl label node <kubernetesNodeName2> mssql-cluster=bdc mssql-resource=bdc-master --overwrite=true
kubectl label node <kubernetesNodeName3> mssql-cluster=bdc mssql-resource=bdc-compute-pool --overwrite=true
kubectl label node <kubernetesNodeName4> mssql-cluster=bdc mssql-resource=bdc-compute-pool --overwrite=true
kubectl label node <kubernetesNodeName5> mssql-cluster=bdc mssql-resource=bdc-storage-pool --overwrite=true
kubectl label node <kubernetesNodeName6> mssql-cluster=bdc mssql-resource=bdc-storage-pool --overwrite=true
kubectl label node <kubernetesNodeName7> mssql-cluster=bdc mssql-resource=bdc-storage-pool --overwrite=true
kubectl label node <kubernetesNodeName8> mssql-cluster=bdc mssql-resource=bdc-storage-pool --overwrite=true
Kemudian perbarui file konfigurasi penyebaran kluster untuk menyertakan nilai label. Contoh ini mengasumsikan bahwa Anda menyesuaikan file konfigurasi dalam custom-bdc
profil. Secara default, tidak nodeLabel
ada kunci dan clusterLabel
dalam konfigurasi bawaan sehingga Anda harus mengedit file konfigurasi kustom secara manual atau menggunakan azdata bdc config add
perintah untuk melakukan pengeditan yang diperlukan.
azdata bdc config add -c custom-bdc/control.json -j "$.spec.clusterLabel=bdc"
azdata bdc config add -c custom-bdc/control.json -j "$.spec.nodeLabel=bdc-shared"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.master.spec.nodeLabel=bdc-master"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.compute-0.spec.nodeLabel=bdc-compute-pool"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.data-0.spec.nodeLabel=bdc-compute-pool"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.storage-0.spec.nodeLabel=bdc-storage-pool"
# below can be omitted in which case we will take the node label default from the control.json
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.nmnode-0.spec.nodeLabel=bdc-shared"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.sparkhead.spec.nodeLabel=bdc-shared"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.zookeeper.spec.nodeLabel=bdc-shared"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.gateway.spec.nodeLabel=bdc-shared"
azdata bdc config add -c custom-bdc/bdc.json -j "$.spec.resources.appproxy.spec.nodeLabel=bdc-shared"
Catatan
Praktik terbaik menghindari pemberian kubernetes master salah satu peran BDC di atas. Jika Anda berencana untuk menetapkan peran ini ke simpul master Kubernetes, Anda harus menghapus taint-nya master:NoSchedule
. Ketahuilah bahwa ini dapat membebani simpul master dan menghambat kemampuannya untuk melakukan tugas manajemen Kubernetes pada kluster yang lebih besar. Biasanya melihat beberapa pod yang dijadwalkan ke master pada penyebaran apa pun: mereka sudah mentolerir master:NoSchedule
taint, dan sebagian besar digunakan untuk membantu mengelola kluster.
Penyesuaian lain menggunakan file patch JSON
File patch JSON mengonfigurasi beberapa pengaturan sekaligus. Untuk informasi selengkapnya tentang patch JSON, lihat Patch JSON di Python dan JSONPath Online Evaluator.
File berikut patch.json
melakukan perubahan berikut:
- Perbarui port titik akhir tunggal di
control.json
.
{
"patch": [
{
"op": "replace",
"path": "$.spec.endpoints[?(@.name=='Controller')].port",
"value": 30000
}
]
}
- Perbarui semua titik akhir (
port
danserviceType
) dicontrol.json
.
{
"patch": [
{
"op": "replace",
"path": "spec.endpoints",
"value": [
{
"serviceType": "LoadBalancer",
"port": 30001,
"name": "Controller"
},
{
"serviceType": "LoadBalancer",
"port": 30778,
"name": "ServiceProxy"
}
]
}
]
}
- Perbarui pengaturan penyimpanan pengontrol di
control.json
. Pengaturan ini berlaku untuk semua komponen kluster, kecuali ditimpa pada tingkat kumpulan.
{
"patch": [
{
"op": "replace",
"path": "spec.storage",
"value": {
"data": {
"className": "managed-premium",
"accessMode": "ReadWriteOnce",
"size": "100Gi"
},
"logs": {
"className": "managed-premium",
"accessMode": "ReadWriteOnce",
"size": "32Gi"
}
}
}
]
}
- Perbarui nama kelas penyimpanan di
control.json
.
{
"patch": [
{
"op": "replace",
"path": "spec.storage.data.className",
"value": "managed-premium"
}
]
}
- Perbarui pengaturan penyimpanan kumpulan untuk kumpulan penyimpanan di
bdc.json
.
{
"patch": [
{
"op": "replace",
"path": "spec.resources.storage-0.spec",
"value": {
"type": "Storage",
"replicas": 2,
"storage": {
"data": {
"size": "100Gi",
"className": "myStorageClass",
"accessMode": "ReadWriteOnce"
},
"logs": {
"size": "32Gi",
"className": "myStorageClass",
"accessMode": "ReadWriteOnce"
}
}
}
}
]
}
- Perbarui pengaturan Spark untuk kumpulan penyimpanan di
bdc.json
.
{
"patch": [
{
"op": "replace",
"path": "spec.services.spark.settings",
"value": {
"spark-defaults-conf.spark.driver.memory": "2g",
"spark-defaults-conf.spark.driver.cores": "1",
"spark-defaults-conf.spark.executor.instances": "3",
"spark-defaults-conf.spark.executor.memory": "1536m",
"spark-defaults-conf.spark.executor.cores": "1",
"yarn-site.yarn.nodemanager.resource.memory-mb": "18432",
"yarn-site.yarn.nodemanager.resource.cpu-vcores": "6",
"yarn-site.yarn.scheduler.maximum-allocation-mb": "18432",
"yarn-site.yarn.scheduler.maximum-allocation-vcores": "6",
"yarn-site.yarn.scheduler.capacity.maximum-am-resource-percent": "0.3"
}
}
]
}
Tip
Untuk informasi selengkapnya tentang struktur dan opsi untuk mengubah file konfigurasi penyebaran, lihat Referensi file konfigurasi penyebaran untuk kluster big data.
Gunakan azdata bdc config
perintah untuk menerapkan perubahan dalam file patch JSON. Contoh berikut menerapkan file ke patch.json
file custom-bdc/bdc.json
konfigurasi penyebaran target .
azdata bdc config patch --config-file custom-bdc/bdc.json --patch-file ./patch.json
Nonaktifkan ElasticSearch untuk dijalankan dalam mode istimewa
Secara default, kontainer ElasticSearch berjalan dalam mode hak istimewa di kluster big data. Pengaturan ini memastikan bahwa pada waktu inisialisasi kontainer, kontainer memiliki izin yang cukup untuk memperbarui pengaturan pada host yang diperlukan ketika ElasticSearch memproses jumlah log yang lebih tinggi. Anda dapat menemukan informasi selengkapnya tentang topik ini di artikel ini.
Untuk menonaktifkan kontainer yang menjalankan ElasticSearch untuk berjalan dalam mode istimewa, Anda harus memperbarui settings
bagian di control.json
dan menentukan nilai ke vm.max_map_count
-1
. Berikut adalah sampel tampilan bagian ini:
{
"apiVersion": "v1",
"metadata": {...},
"spec": {
"docker": {...},
"storage": {...},
"endpoints": [...],
"settings": {
"ElasticSearch": {
"vm.max_map_count": "-1"
}
}
}
}
Anda dapat mengedit control.json
dan menambahkan bagian di atas secara manual ke spec
, atau Anda dapat membuat file elasticsearch-patch.json
patch seperti di bawah ini dan menggunakan Azure Data CLI (azdata
) untuk menambal control.json
file:
{
"patch": [
{
"op": "add",
"path": "spec.settings",
"value": {
"ElasticSearch": {
"vm.max_map_count": "-1"
}
}
}
]
}
Jalankan perintah ini untuk menambal file konfigurasi:
azdata bdc config patch --config-file custom-bdc/control.json --patch-file elasticsearch-patch.json
Penting
Kami menyarankan sebagai praktik terbaik untuk memperbarui max_map_count
pengaturan secara manual pada setiap host di kluster Kubernetes sesuai instruksi dalam artikel ini.
Mengaktifkan/menonaktifkan pengumpulan metrik pod dan simpul
SQL Server 2019 CU5 mengaktifkan dua sakelar fitur untuk mengontrol pengumpulan metrik pod dan simpul. Jika Anda menggunakan solusi yang berbeda untuk memantau infrastruktur Kubernetes, Anda dapat menonaktifkan koleksi metrik bawaan untuk pod dan node host dengan mengatur allowNodeMetricsCollection dan allowPodMetricsCollection ke false dalam file konfigurasi penyebaran control.json. Untuk lingkungan OpenShift, pengaturan ini diatur ke false secara default di profil penyebaran bawaan, karena mengumpulkan metrik pod dan node memerlukan kemampuan istimewa. Jalankan perintah ini untuk memperbarui nilai pengaturan ini dalam file konfigurasi kustom Anda menggunakan Azdata CLI:
azdata bdc config replace -c custom-bdc/control.json -j "$.security.allowNodeMetricsCollection=false"
azdata bdc config replace -c custom-bdc/control.json -j "$.security.allowPodMetricsCollection=false"
Langkah berikutnya
Untuk informasi selengkapnya tentang menggunakan file konfigurasi dalam penyebaran kluster big data, lihat Cara menyebarkan SQL Server Kluster Big Data di Kubernetes.