Gunakan azdata distcp untuk melakukan pergerakan data antara SQL Server kluster big data

Berlaku untuk: SQL Server 2019 (15.x)

Penting

Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk Kluster Big Data SQL Server 2019 akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung penuh 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.

Artikel ini menjelaskan cara menggunakan azdata untuk melakukan salinan data terdistribusi berkinerja tinggi antara SQL Server Kluster Big Data.

Prasyarat

Pengantar salinan data terdistribusi di SQL Server Kluster Big Data

Hadoop HDFS DistCP adalah alat baris perintah yang digunakan untuk melakukan salinan paralel file dan folder terdistribusi dari satu kluster HDFS ke kluster lainnya. Penyalinan paralel terdistribusi memungkinkan transfer cepat file dan folder skala Data Lake antara dua kluster yang berbeda, memungkinkan migrasi, pembuatan lingkungan tersegmentasi, ketersediaan tinggi, dan skenario pemulihan bencana.

Hadoop HDFS DistCP menggunakan pekerjaan MapReduce internal untuk memperluas daftar file dan direktori ke dalam input ke beberapa tugas peta, yang masing-masing akan menyalin partisi file yang ditentukan dalam daftar sumber ke tujuan. Ini memungkinkan beberapa simpul data di kluster sumber untuk mengirim data langsung ke beberapa simpul data di kluster tujuan, membuat skenario salinan paralel yang benar-benar terdistribusi.

Pada SQL Server Kluster Big Data CU13 ke atas, fungsionalitas salinan terdistribusi diintegrasikan ke dalam produk dan diekspos melalui perintah azdata bdc hdfs distcp. Perintah adalah operasi asinkron, segera kembali saat pekerjaan penyalinan dijalankan di latar belakang. Pantau pekerjaan penyalinan menggunakan antarmuka azdata pengguna pemantauan yang disediakan.

Hanya sumber dan tujuan SQL Server Kluster Big Data yang didukung.

Kluster dapat disebarkan dalam mode aktif Direktori Aktif atau mode keamanan dasar. Salinan dapat dilakukan di antara kombinasi mode keamanan apa pun. Untuk kluster yang diaktifkan Direktori Aktif, diperlukan bahwa kluster tersebut berada di domain yang sama.

Dalam panduan ini kita akan membahas skenario salinan data berikut:

  • Kluster yang diaktifkan Active Directory ke kluster yang diaktifkan Active Directory
  • Kluster keamanan dasar ke kluster yang diaktifkan Direktori Aktif
  • Kluster keamanan dasar ke kluster keamanan dasar

Langkah-langkah yang diperlukan untuk semua skenario

Sertifikat diperlukan untuk membuat hubungan tepercaya antara kluster sumber dan tujuan. Langkah-langkah ini hanya diperlukan sekali per kombinasi kluster sumber/tujuan.

Penting

Jika SQL Server kluster big data dengan autentikasi dasar (non-AD) langsung ditingkatkan ke CU13 atau lebih tinggi, fungsionalitas distcp memerlukan aktivasi. (Ini tidak memengaruhi penyebaran kluster CU13+ baru dengan autentikasi dasar.)

Untuk mengaktifkan fungsionalitas distcp dalam skenario ini, jalankan langkah-langkah tambahan berikut sekali:

kubectl -n $CLUSTER_NAME exec -it nmnode-0-0 -- bash
export HADOOP_USER_NAME=hdfs
hadoop fs -mkdir -p /tmp/hadoop-yarn/staging/history
hadoop fs -chown yarn /tmp/hadoop-yarn
hadoop fs -chown yarn /tmp/hadoop-yarn/staging
hadoop fs -chown yarn /tmp/hadoop-yarn/staging/history
hadoop fs -chmod 733 /tmp/hadoop-yarn
hadoop fs -chmod 733 /tmp/hadoop-yarn/staging
hadoop fs -chmod 733 /tmp/hadoop-yarn/staging/history

Notebook yang diperlukan di langkah berikutnya adalah bagian dari Notebook operasional untuk SQL Server Kluster Big Data. Untuk informasi selengkapnya cara menginstal dan menggunakan buku catatan, lihat Buku catatan operasional

Langkah 1 - Pembuatan dan penginstalan sertifikat

Sambungkan ke kluster sumber Anda menggunakan Azure Data Studio. Di sinilah file akan disalin. Lakukan langkah berikut:

  1. Membuat sertifikat akar kluster baru di kluster sumber menggunakan notebook cer001-create-root-ca.ipynb

  2. Unduh sertifikat akar kluster baru ke komputer Anda menggunakan cer002-download-existing-root-ca.ipynb

  3. Instal sertifikat akar baru ke kluster sumber menggunakan cer005-install-existing-root-ca.ipynb. Langkah ini akan memakan waktu 10-15 menit.

  4. Hasilkan sertifikat knox baru pada kluster sumber cer021-create-knox-cert.ipynb

  5. Tanda tangani dengan sertifikat knox baru dengan sertifikat akar baru menggunakan cer031-sign-knox-generated-cert.ipynb

  6. Instal sertifikat knox baru pada kluster sumber menggunakan cer041-install-knox-cert.ipynb

    Penting

    Perintah pembuatan sertifikat akan membuat file CA akar (cluster-ca-certificate.crt) dan file sertifikat Knox (cacert.pem) di "C:\Users\{Username}\AppData\Local\Temp\1\mssql-cluster-root-ca\" pada Windows dan "/tmp/mssql-cluster-root-ca/ di Unix.

Langkah 2 - Penginstalan sertifikat di tujuan

Sambungkan ke kluster tujuan Anda menggunakan Azure Data Studio. Di sinilah file akan disalin. Lakukan langkah berikut:

Peringatan

Jika Anda menggunakan Azure Data Studio di komputer yang berbeda untuk melakukan tugas ini, salin cluster-ca-certificate.crt file dan cacert.pem yang dihasilkan pada Langkah 1 ke lokasi yang tepat di komputer lain sebelum menjalankan buku catatan di langkah berikutnya.

  1. Instal sertifikat akar baru dari kluster sumber ke kluster tujuan menggunakan cer005-install-existing-root-ca.ipynb. Langkah ini akan memakan waktu 10-15 menit.

Langkah 3 - Pembuatan file keytab

Anda perlu membuat file keytab jika salah satu kluster diaktifkan Direktori Aktif. File akan melakukan autentikasi untuk mengaktifkan salinan yang akan berlangsung.

Buat file keytab menggunakan ktutil. Contohnya adalah sebagai berikut. Pastikan untuk menentukan atau mengganti variabel DOMAIN_SERVICE_ACCOUNT_USERNAMElingkungan , , DOMAIN_SERVICE_ACCOUNT_PASSWORDdan REALM dengan nilai yang sesuai.

ktutil
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e arcfour-hmac-md5
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e aes256-cts
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e aes256-cts-hmac-sha1-96
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> wkt /tmp/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
> exit

Langkah 4 - Salin tab kunci ke lokasi HDFS

Langkah ini hanya diperlukan jika salah satu kluster diaktifkan.

Pastikan untuk menentukan atau mengganti variabel DOMAIN_SERVICE_ACCOUNT_USERNAME lingkungan dengan nilai yang sesuai.

Unggah tab kunci ke tujuan (kluster aman):

azdata bdc hdfs mkdir -p /user/$DOMAIN_SERVICE_ACCOUNT_USERNAME
azdata bdc hdfs cp -f /tmp/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab -t /user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab

Skenario penyalinan data

Skenario 1 - Kluster yang diaktifkan Direktori Aktif ke kluster yang diaktifkan Direktori Aktif

  1. Ekspor variabel DISTCP_KRB5KEYTABlingkungan yang diperlukan :

    export DISTCP_KRB5KEYTAB=/user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
    
  2. Tentukan atau ganti CLUSTER_CONTROLLERvariabel , DESTINATION_CLUSTER_NAMESPACE, dan PRINCIPAL dengan vales yang sesuai. Kemudian gunakan azdata untuk mengautentikasi ke kluster tujuan:

    azdata login --auth ad --endpoint $CLUSTER_CONTROLLER --namespace $DESTINATION_CLUSTER_NAMESPACE --principal $PRINCIPAL
    
  3. Jalankan salinan data terdistribusi:

    azdata bdc hdfs distcp submit -f https://knox.$CLUSTER_NAME.$DOMAIN:30443/file.txt -t  /file.txt
    

Skenario 2 - Kluster keamanan dasar ke kluster yang diaktifkan Direktori Aktif

  1. Ekspor variabel DISTCP_KRB5KEYTABlingkungan yang diperlukan , DISTCP_AZDATA_USERNAME, dan DISTCP_AZDATA_PASSWORD:

    export DISTCP_KRB5KEYTAB=/user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
    export DISTCP_AZDATA_USERNAME=<your basic security bdc username> 
    export DISTCP_AZDATA_PASSWORD=<your basic security bdc password>
    
  2. Tentukan atau ganti CLUSTER_CONTROLLERvariabel , DESTINATION_CLUSTER_NAMESPACE, dan PRINCIPAL dengan vales yang sesuai. Kemudian gunakan azdata untuk mengautentikasi ke kluster tujuan:

    azdata login --auth ad --endpoint $CLUSTER_CONTROLLER --namespace $DESTINATION_CLUSTER_NAMESPACE --principal $PRINCIPAL
    
  3. Menjalankan salinan data terdistribusi

    azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/file.txt --to-path /file.txt
    

Skenario 3 - Kluster keamanan dasar ke kluster keamanan dasar

  1. Ekspor variabel DISTCP_AZDATA_USERNAME lingkungan yang diperlukan dan DISTCP_AZDATA_PASSWORD:

    export DISTCP_AZDATA_USERNAME=<your basic security bdc username> 
    export DISTCP_AZDATA_PASSWORD=<your basic security bdc password>
    
  2. Gunakan azdata untuk mengautentikasi ke kluster tujuan

  3. Menjalankan salinan data terdistribusi

    azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/file.txt --to-path /file.txt
    

Memantau pekerjaan salinan terdistribusi

Perintah azdata bdc hdfs distcp submit adalah operasi asinkron, segera kembali saat pekerjaan penyalinan berjalan di latar belakang. Pantau pekerjaan penyalinan menggunakan antarmuka azdata pengguna pemantauan yang disediakan.

Mencantumkan semua pekerjaan salinan terdistribusi

azdata bdc hdfs distcp list

Perhatikan pekerjaan anda job-id dan untuk melacak. Semua perintah lainnya bergantung padanya.

Mendapatkan status pekerjaan salinan terdistribusi

azdata bdc hdfs distcp state [--job-id | -i] <JOB_ID>

Mendapatkan status lengkap pekerjaan salinan terdistribusi

azdata bdc hdfs distcp status [--job-id | -i] <JOB_ID>

Mendapatkan log pekerjaan salinan terdistribusi

azdata bdc hdfs distcp log [--job-id | -i] <JOB_ID>

Petunjuk salinan terdistribusi

  1. Untuk menyalin seluruh direktori dan kontennya, akhiri argumen jalur dengan direktori, tanpa '/'. Contoh berikut menyalin seluruh sourceDirectories direktori ke tujuan HDFS akar:

    azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/sourceDirectories --to-path /
    
  2. Perintah mungkin berisi opsi, mendukung --overwritepengubah , , --preserve--update, dan --delete . Pengubah harus ditempatkan tepat setelah kata kunci kirim, seperti di bawah ini:

    azdata bdc hdfs distcp submit {options} --from-path https://$SOURCE_CLUSTER_IP:30443/sourceDirectories --to-path /
    

Langkah berikutnya

Untuk informasi selengkapnya, lihat Memperkenalkan SQL Server Kluster Big Data.

Untuk referensi lengkap perintah baru, lihat azdata bdc hdfs distcp.