Video: How To Compress Large Video Files On Mac Without Losing Video Quality 2024
Jilid data yang besar yang nyata dalam penggunaan Hadoop yang tipikal membuat mampatan sebagai keperluan. Mampatan data pasti menjimatkan banyak ruang penyimpanan dan pasti mempercepat pergerakan data sepanjang kluster anda. Tidak menghairankan, beberapa skema mampatan yang tersedia, dipanggil codec, berada di luar sana untuk anda pertimbangkan.
Dalam penggunaan Hadoop, anda berurusan (berpotensi) dengan sejumlah besar nod hamba individu, masing-masing mempunyai sejumlah pemacu cakera besar. Ia bukan perkara biasa bagi nod hamba individu untuk mempunyai 45TB ruang penyimpanan mentah yang tersedia untuk HDFS.
Pertama, beberapa istilah asas: Acodec, yang merupakan bentuk pendek co mpressor / dec ompressor, adalah teknologi (perisian atau perkakasan) kedua-duanya) untuk memampatkan dan menguraikan data; ia adalah pelaksanaan algoritma pemampatan / penyahmampatan.
Mampatan Splittable
adalah konsep penting dalam konteks Hadoop. Cara kerja Hadoop adalah bahawa fail dipecahkan jika mereka lebih besar daripada tetapan saiz blok fail, dan perpecahan fail individu boleh diproses selari oleh pemetaan yang berbeza.
Oleh kerana fail boleh dirombak hanya secara keseluruhan, dan bukan sebagai bahagian individu berdasarkan pecahan, tidak boleh diproses pemprosesan selari seperti itu, dan prestasi mungkin memukul besar sebagai pekerjaan menunggu satu mapper untuk memproses berbilang blok data yang tidak dapat dikompresi secara bebas.
Mampatan Splittable hanya merupakan faktor untuk fail teks. Untuk fail perduaan, codec mampatan Hadoop memampatkan data dalam bekas yang dikodkan binari, bergantung pada jenis fail (misalnya, SequenceFile, Avro, atau ProtocolBuffer).
Bercakap mengenai prestasi, ada kos (dari segi sumber dan masa pemprosesan) yang dikaitkan dengan memampatkan data yang ditulis ke cluster Hadoop anda.
Dengan komputer, seperti kehidupan, tiada apa-apa yang percuma. Apabila memampatkan data, anda menukar siklus pemprosesan untuk ruang cakera. Dan apabila data itu sedang dibaca, terdapat kos yang berkaitan dengan dekompresi data juga. Pastikan berat kelebihan penyimpanan simpanan terhadap overhed prestasi tambahan.
Jika fail input ke dalam tugas MapReduce mengandungi data termampat, masa yang diperlukan untuk membaca data dari HDFS dikurangkan dan prestasi kerja ditingkatkan. Data masukan dimampatkan secara automatik apabila ia dibaca oleh MapReduce.
Sambungan nama fail masukan menentukan codec yang disokong digunakan untuk menguraikan data secara automatik. Sebagai contoh, a. sambungan gz mengenal pasti fail itu sebagai fail gzip-dikompresi.
Ia juga berguna untuk memampatkan output perantaraan fasa peta dalam aliran pemprosesan MapReduce. Kerana output fungsi peta ditulis ke cakera dan dihantar ke seluruh rangkaian untuk mengurangkan tugas, memampatkan output dapat menghasilkan peningkatan prestasi yang signifikan.
Dan jika anda ingin menyimpan output MapReduce sebagai fail sejarah untuk kegunaan masa depan, memampatkan data ini dapat mengurangkan jumlah ruang yang dibutuhkan dalam HDFS.
Terdapat banyak algoritma dan alat pemampatan yang berbeza, dan ciri-ciri dan kekuatan mereka berbeza-beza. Perdaganan yang paling biasa adalah antara nisbah mampatan (sejauh mana suatu fail dimampatkan) dan memampatkan / mengekspresikan kelajuan. Rangka kerja Hadoop menyokong beberapa codec. Rangka kerja itu secara telus memampatkan dan menyahkompresi kebanyakan format fail input dan output.
Senarai berikut mengenal pasti beberapa codec biasa yang disokong oleh rangka kerja Hadoop. Pastikan untuk memilih codec yang paling sesuai dengan tuntutan kes penggunaan khusus anda (contohnya, dengan beban kerja di mana kelajuan pemprosesan adalah penting, memilih codec dengan kelajuan penyahmampatan yang tinggi):
Gzip:
-
Mampatan utiliti yang diterima pakai oleh projek GNU, Gzip (pendek untuk GNU zip) menghasilkan fail termampat yang mempunyai. lanjutan gz. Anda boleh menggunakan arahan gunzip untuk mengekspresikan fail yang dibuat oleh beberapa utiliti mampatan, termasuk Gzip. Bzip2:
-
Dari sudut pandangan kebolehgunaan, Bzip2 dan Gzip sama. Bzip2 menghasilkan nisbah mampatan yang lebih baik daripada Gzip, tetapi ia lebih perlahan. Malah, Daripada semua codec mampatan yang terdapat di Hadoop, Bzip2 adalah yang paling lambat. Jika anda menyediakan arkib yang anda jarang perlu pertanyaan dan ruang pada premium yang tinggi, maka mungkin Bzip2 patut dipertimbangkan.
Snappy:
-
Codec Snappy dari Google menyediakan nisbah mampatan sederhana, tetapi kelajuan mampatan dan penyahmampatan. (Malah, ia mempunyai kelajuan penyahmampatan terpantas, yang menjadikannya sangat wajar untuk set data yang mungkin sering ditanya.) Codec Snappy disatukan ke Hadoop Common, satu set utiliti biasa yang menyokong sub-projek Hadoop yang lain. Anda boleh menggunakan Snappy sebagai pengaya untuk versi Hadoop yang lebih baru yang belum memberikan sokongan codec Snappy.
LZO:
-
Sama seperti Snappy, LZO (pendek untuk Lempel-Ziv-Oberhumer, trio saintis komputer yang datang dengan algoritma) menyediakan nisbah mampatan sederhana, tetapi kelajuan mampatan dan penyahmampatan. LZO dilesenkan di bawah Lesen Awam GNU (GPL). LZO menyokong mampatan splittable, yang membolehkan proses pemprosesan teks terkompresi selari dipisahkan oleh pekerjaan MapReduce anda. LZO perlu membuat indeks apabila ia memampatkan fail, kerana dengan blok mampatan yang berubah-ubah, indeks diperlukan untuk memberitahu mapper di mana ia dapat membahagikan fail yang dimampatkan secara selamat. LZO hanya benar-benar wajar jika anda perlu memampatkan fail teks.
Codec Hadoop
Extension File | Splittable? | Degree of Compression | Speed Compression | Gzip |
---|---|---|---|---|
. gz | Tidak | Sederhana | Sederhana | Bzip2 |
. bz2 | Ya | Tinggi | Perlahan | Snappy |
. tajam | Tidak | Sederhana | Cepat | LZO |
. lzo | Tidak, kecuali diindeks | Sederhana | Cepat | Semua algoritma pemampatan mesti membuat pertukaran antara tahap mampatan dan kelajuan mampatan yang mereka dapat capai. Kod codec yang disenaraikan memberikan anda kawalan ke atas apa keseimbangan antara nisbah mampatan dan kelajuan harus pada masa mampatan. |
Sebagai contoh, Gzip membolehkan anda mengawal kelajuan mampatan dengan menyatakan integer negatif (atau kata kunci), di mana -1 menunjukkan tahap mampatan terpantas, dan -9 menunjukkan tahap mampatan yang paling lambat. Tahap mampatan lalai adalah -6.