Bagikan melalui


Setel Azure Data Lake Storage Gen1 untuk performa

Azure Data Lake Storage Gen1 mendukung throughput tinggi untuk analitik intensif I/O dan pemindahan data. Di Azure Data Lake Storage Gen1, menggunakan semua throughput yang tersedia – jumlah data yang dapat dibaca atau ditulis per detik – penting untuk mendapatkan performa terbaik. Ini dicapai dengan melakukan sebanyak mungkin baca dan tulis secara paralel.

Performa Azure Data Lake Storage Gen1

Azure Data Lake Storage Gen1 dapat diskalakan untuk memberikan throughput yang diperlukan untuk semua skenario analitik. Secara default, akun Azure Data Lake Storage Gen1 memberikan throughput yang cukup secara otomatis untuk memenuhi kebutuhan kategori kasus penggunaan yang luas. Untuk kasus di mana pelanggan mengalami batas default, akun Azure Data Lake Storage Gen1 dapat dikonfigurasi untuk memberikan lebih banyak throughput dengan menghubungi dukungan Microsoft.

Penyerapan data

Saat menyerap data dari sistem sumber ke Azure Data Lake Storage Gen1, penting untuk mempertimbangkan bahwa perangkat keras sumber, perangkat keras jaringan sumber, dan konektivitas jaringan ke Azure Data Lake Storage Gen1 dapat menjadi penyempitan.

Diagram yang menunjukkan bahwa perangkat keras sumber, perangkat keras jaringan sumber, dan konektivitas jaringan ke Azure Data Lake Storage Gen1 dapat menjadi penyempitan.

Penting untuk memastikan bahwa pergerakan data tidak terpengaruh oleh faktor-faktor ini.

Perangkat keras sumber

Baik Anda menggunakan komputer lokal atau VM di Azure, Anda harus berhati-hati dalam memilih perangkat keras yang sesuai. Untuk Perangkat Keras Disk Sumber, pilih SSD daripada HDD dan pilih perangkat keras disk dengan spindel yang lebih cepat. Untuk Perangkat Keras Jaringan Sumber, gunakan NIC tercepat yang ada. Di Azure, kami merekomendasikan VM D14 Azure yang memiliki perangkat keras disk dan jaringan yang tepat dan kuat.

Konektivitas jaringan ke Azure Data Lake Storage Gen1

Konektivitas jaringan antara data sumber Anda dan Azure Data Lake Storage Gen1 terkadang dapat menjadi penyempitan. Bila data sumber Anda adalah Lokal, pertimbangkan untuk menggunakan tautan khusus dengan Azure ExpressRoute . Jika data sumber Anda ada di Azure, performa akan menjadi yang terbaik saat data berada di wilayah Azure yang sama dengan akun Data Lake Storage Gen1.

Konfigurasikan alat penyerapan data untuk paralelisasi maksimum

Setelah mengatasi hambatan konektivitas jaringan dan perangkat keras sumber, Anda siap mengonfigurasi alat penyerapan. Tabel berikut merangkum pengaturan utama untuk beberapa alat penyerapan populer dan menyediakan artikel penyetelan performa yang mendalam untuk alat tersebut. Untuk mempelajari lebih lanjut tentang alat mana yang digunakan untuk skenario Anda, kunjungi artikel ini.

Alat Pengaturan Keterangan lebih lanjut
PowerShell PerFileThreadCount, ConcurrentFileCount Tautan
AdlCopy Unit Azure Data Lake Analytics Tautan
DistCp -m (pemeta) Tautan
Azure Data Factory parallelCopies Tautan
Sqoop fs.azure.block.size, -m (pemeta) Tautan

Susun kumpulan data Anda

Saat data disimpan di Data Lake Storage Gen1, ukuran file, jumlah file, dan struktur folder memengaruhi performa. Bagian berikut menjelaskan praktik terbaik di bidang ini.

Ukuran file

Biasanya, mesin analitik seperti HDInsight dan Azure Data Lake Analytics memiliki overhead per file. Jika Anda menyimpan data Anda sebanyak file kecil, ini dapat berdampak negatif pada performa.

Secara umum, atur data Anda ke dalam file berukuran lebih besar untuk performa yang lebih baik. Sebagai aturan praktis, atur kumpulan data dalam file berukuran 256 MB atau lebih besar. Dalam beberapa kasus seperti gambar dan data biner, tidak mungkin untuk memprosesnya secara paralel. Dalam kasus ini, disarankan untuk menyimpan file individual di bawah 2 GB.

Terkadang, jalur pipa data memiliki kontrol terbatas atas data mentah yang memiliki banyak file kecil. Disarankan untuk memiliki proses "memasak" yang menghasilkan file yang lebih besar untuk digunakan untuk aplikasi hilir.

Atur data deret waktu dalam folder

Untuk beban kerja Apache Hive dan Data Lake Analytics, pemangkasan partisi data deret waktu dapat membantu beberapa kueri hanya baca sebagian data, yang meningkatkan performa.

Saluran pipa yang menyerap data deret waktu, sering kali menempatkan file mereka dengan penamaan terstruktur untuk file dan folder. Berikut adalah contoh umum yang kita lihat untuk data yang disusun menurut tanggal: \DataSet\YYYY\MM\DD\datafile_YYYY_MM_DD.tsv.

Perhatikan bahwa informasi datetime muncul sebagai folder dan nama file.

Untuk tanggal dan waktu, berikut adalah pola umum: \DataSet\YYYY\MM\DD\HH\mm\datafile_YYYY_MM_DD_HH_mm.tsv.

Sekali lagi, pilihan yang Anda buat dengan folder dan organisasi file harus dioptimalkan untuk ukuran file yang lebih besar dan jumlah file yang wajar di setiap folder.

Optimalkan pekerjaan intensif I/O pada beban kerja Hadoop dan Spark di HDInsight

Pekerjaan termasuk dalam salah satu dari tiga kategori berikut:

  • CPU intensif. Pekerjaan ini memiliki waktu komputasi yang lama dengan waktu I/O yang minimal. Contohnya termasuk pembelajaran mesin dan pekerjaan pemrosesan bahasa alami.
  • Memori intensif. Pekerjaan ini menggunakan banyak memori. Contohnya termasuk pekerjaan PageRank dan analisis waktu nyata.
  • I/O intensif. Pekerjaan ini menghabiskan sebagian besar waktunya untuk melakukan I/O. Contoh umum adalah pekerjaan salin yang hanya melakukan operasi baca dan tulis. Contoh lain termasuk pekerjaan persiapan data yang membaca banyak data, melakukan beberapa transformasi data, dan kemudian menulis data kembali ke menyimpan.

Panduan berikut ini hanya berlaku untuk pekerjaan intensif I/O.

Pertimbangan umum untuk cluster HDInsight

  • Versi HDInsight. Untuk performa terbaik, gunakan rilis HDInsight terbaru.
  • Wilayah. Tempatkan akun Data Lake Storage Gen1 di wilayah yang sama dengan cluster HDInsight.

Sebuah cluster HDInsight terdiri dari dua node kepala dan beberapa node pekerja. Setiap node pekerja menyediakan sejumlah inti dan memori tertentu, yang ditentukan oleh tipe VM. Saat menjalankan pekerjaan, YARN adalah negosiator sumber daya yang mengalokasikan memori dan inti yang tersedia untuk membuat kontainer. Setiap kontainer menjalankan tugas yang diperlukan untuk menyelesaikan pekerjaan. Kontainer berjalan secara paralel untuk memproses tugas dengan cepat. Oleh karena itu, performa ditingkatkan dengan menjalankan sebanyak mungkin kontainer paralel.

Ada tiga lapisan dalam klaster HDInsight yang dapat disesuaikan untuk meningkatkan jumlah kontainer dan menggunakan semua throughput yang tersedia.

  • Lapisan fisik
  • Lapisan BENANG
  • Lapisan beban kerja

Lapisan fisik

Jalankan kluster dengan lebih banyak node dan/atau VM berukuran lebih besar. Kluster yang lebih besar akan memungkinkan Anda untuk menjalankan lebih banyak kontainer YARN seperti yang ditunjukkan pada gambar di bawah ini.

Diagram yang menunjukkan penggunaan lebih banyak kontainer YARN.

Gunakan VM dengan bandwidth jaringan lebih banyak. Jumlah bandwidth jaringan dapat menjadi hambatan jika bandwidth jaringan lebih sedikit daripada throughput Data Lake Storage Gen1. VM yang berbeda akan memiliki ukuran bandwidth jaringan yang berbeda. Pilih tipe VM yang memiliki bandwidth jaringan terbesar.

lapisan BENANG

Gunakan kontainer YARN yang lebih kecil. Kurangi ukuran setiap kontainer YARN untuk membuat lebih banyak kontainer dengan jumlah sumber daya yang sama.

Diagram yang menunjukkan penggunaan kontainer YARN yang lebih kecil.

Tergantung pada beban kerja Anda, akan selalu ada ukuran kontainer YARN minimum yang diperlukan. Jika Anda memilih kontainer yang terlalu kecil, pekerjaan Anda akan mengalami masalah kehabisan memori. Biasanya kontainer YARN tidak boleh lebih kecil dari 1 GB. Sudah umum melihat kontainer YARN 3 GB. Untuk beberapa beban kerja, Anda mungkin memerlukan kontainer YARN yang lebih besar.

Tingkatkan inti per penampung BENANG. Tingkatkan jumlah inti yang dialokasikan untuk setiap kontainer untuk meningkatkan jumlah tugas paralel yang berjalan di setiap kontainer. Ini berfungsi untuk aplikasi seperti Spark, yang menjalankan banyak tugas per kontainer. Untuk aplikasi seperti Apache Hive yang menjalankan satu utas di setiap kontainer, lebih baik memiliki lebih banyak kontainer daripada lebih banyak inti per kontainer.

Lapisan beban kerja

Gunakan semua penampung yang tersedia. Tetapkan jumlah tugas menjadi sama atau lebih besar dari jumlah kontainer yang tersedia sehingga semua sumber daya digunakan.

Diagram yang menunjukkan penggunaan semua kontainer yang tersedia.

Tugas yang gagal mahal harganya. Jika setiap tugas memiliki sejumlah besar data untuk diproses, maka kegagalan tugas menghasilkan percobaan ulang yang mahal. Oleh karena itu, lebih baik untuk membuat lebih banyak tugas, yang masing-masing memproses sejumlah kecil data.

Selain pedoman umum di atas, setiap aplikasi memiliki parameter berbeda yang tersedia untuk disesuaikan dengan aplikasi spesifik tersebut. Tabel di bawah mencantumkan beberapa parameter dan tautan untuk memulai penyetelan performa untuk setiap aplikasi.

Beban kerja Parameter untuk mengatur tugas
Spark di HDInsight
  • Pelaksana bilangan
  • Pelaksana-memori
  • Pelaksana-inti
Apache Hive di HDInsight
  • hive.tez.container.size
MapReduce di HDInsight
  • Mapreduce.map.memory
  • Mapreduce.job.maps
  • Mapreduce.reduce.memory
  • Mapreduce.job.reduces
Badai di HDInsight
  • Jumlah proses pekerja
  • Jumlah instans pelaksana spout
  • Jumlah instans pelaksana baut
  • Jumlah tugas spout
  • Jumlah tugas baut

Lihat juga