Βίντεο: Πως να κάνετε συμπίεση ή αποσυμπίεση αρχείων zip ή rar 2024
Οι τεράστιοι όγκοι δεδομένων που είναι πραγματικές σε μια τυπική ανάπτυξη Hadoop καθιστούν την συμπίεση μια αναγκαιότητα. Η συμπίεση δεδομένων σάς σάς εγγυάται έναν μεγάλο αποθηκευτικό χώρο και σίγουρα θα επιταχύνει την κίνηση αυτών των δεδομένων σε όλο το σύμπλεγμα σας. Δεν αποτελεί έκπληξη το γεγονός ότι υπάρχουν πολλά διαθέσιμα συστήματα συμπίεσης, που ονομάζονται codecs, τα οποία μπορείτε να εξετάσετε.
Σε μια ανάπτυξη Hadoop, αντιμετωπίζετε (δυνητικά) με αρκετά μεγάλο αριθμό μεμονωμένων κόμβων σκλάβου, καθένας από τους οποίους έχει έναν αριθμό μεγάλων δίσκων δίσκου. Δεν είναι ασυνήθιστο ένας μεμονωμένος κόμβος σκλάβου να έχει πάνω από 45TB ακατέργαστου αποθηκευτικού χώρου διαθέσιμο για HDFS.
Πρώτον, μερικοί βασικοί όροι: Acodec, που είναι συντομευμένη μορφή co mpressor / dec και τα δύο) για τη συμπίεση και αποσυμπίεση δεδομένων. είναι η εφαρμογή ενός αλγόριθμου συμπίεσης / αποσυμπίεσης. Η διαχωριζόμενη συμπίεση
είναι μια σημαντική έννοια σε ένα περιβάλλον Hadoop. Ο τρόπος λειτουργίας του Hadoop είναι ότι τα αρχεία είναι χωρισμένα εάν είναι μεγαλύτερα από τη ρύθμιση του μεγέθους του μπλοκ του αρχείου και τα χωριστά χωριστά αρχεία μπορούν να επεξεργαστούν παράλληλα από διαφορετικούς χαρτογράφους.
Η χωριστή συμπίεση είναι μόνο ένας παράγοντας για τα αρχεία κειμένου. Για δυαδικά αρχεία, οι κωδικοποιητές συμπίεσης Hadoop συμπιέζουν δεδομένα μέσα σε ένα δυαδικό κωδικοποιημένο κοντέινερ, ανάλογα με τον τύπο αρχείου (για παράδειγμα, ένα SequenceFile, Avro ή ProtocolBuffer).
Μιλώντας για την απόδοση, υπάρχει ένα κόστος (όσον αφορά τους πόρους και τον χρόνο επεξεργασίας) που σχετίζονται με τη συμπίεση των δεδομένων που γράφονται στο σύμπλεγμα Hadoop.
Με τους υπολογιστές, όπως και με τη ζωή, τίποτα δεν είναι ελεύθερο. Κατά τη συμπίεση δεδομένων, ανταλλάσσετε κύκλους επεξεργασίας για χώρο στο δίσκο. Και όταν αυτά τα δεδομένα διαβάζονται, υπάρχει ένα κόστος που σχετίζεται με την αποσυμπίεση των δεδομένων επίσης. Βεβαιωθείτε ότι σταθμίζετε τα πλεονεκτήματα της εξοικονόμησης αποθήκευσης έναντι των επιπρόσθετων γενικών εξόδων.
Εάν το αρχείο εισόδου σε μια εργασία MapReduce περιέχει συμπιεσμένα δεδομένα, ο χρόνος που απαιτείται για την ανάγνωση αυτών των δεδομένων από το HDFS μειώνεται και βελτιώνεται η απόδοση της εργασίας. Τα δεδομένα εισόδου αποσυμπιέζονται αυτόματα όταν διαβάζονται από το MapReduce.
Η επέκταση ονόματος αρχείου εισόδου καθορίζει ποιο υποστηριζόμενο κωδικοποιητή χρησιμοποιείται για την αυτόματη αποσυμπίεση των δεδομένων. Για παράδειγμα, α. Η επέκταση gz προσδιορίζει το αρχείο ως αρχείο συμπιεσμένο με gzip.
Μπορεί επίσης να είναι χρήσιμο να συμπιέσετε την ενδιάμεση έξοδο της φάσης χάρτη στη ροή επεξεργασίας MapReduce. Επειδή η έξοδος των λειτουργιών χάρτη εγγράφεται στο δίσκο και μεταφέρεται σε όλο το δίκτυο για να μειώσει τις εργασίες, η συμπίεση της εξόδου μπορεί να οδηγήσει σε σημαντικές βελτιώσεις στην απόδοση.
Και αν θέλετε να αποθηκεύσετε την έξοδο MapReduce ως αρχεία ιστορικού για μελλοντική χρήση, η συμπίεση αυτών των δεδομένων μπορεί να μειώσει σημαντικά το ποσό του απαιτούμενου χώρου σε HDFS.
Υπάρχουν πολλοί διαφορετικοί αλγόριθμοι συμπίεσης και εργαλεία και τα χαρακτηριστικά και τα πλεονεκτήματα τους ποικίλλουν. Η πιο συνηθισμένη αντιστάθμιση είναι μεταξύ των λόγων συμπίεσης (ο βαθμός συμπίεσης ενός αρχείου) και οι ταχύτητες συμπίεσης / αποσυμπίεσης. Το πλαίσιο Hadoop υποστηρίζει αρκετούς κωδικοποιητές. Το πλαίσιο συμπιέζει και αποσυμπιέζει διαφανώς τις περισσότερες μορφές αρχείων εισόδου και εξόδου.
Η παρακάτω λίστα προσδιορίζει κάποιους κοινούς κωδικοποιητές που υποστηρίζονται από το πλαίσιο Hadoop. Βεβαιωθείτε ότι έχετε επιλέξει τον κωδικοποιητή που ταιριάζει περισσότερο με τις απαιτήσεις της συγκεκριμένης περίπτωσης χρήσης σας (για παράδειγμα, με φορτία όπου η ταχύτητα επεξεργασίας είναι σημαντική, επιλέξτε έναν κωδικοποιητή με υψηλές ταχύτητες αποσυμπίεσης):
Gzip:
χρησιμότητα που υιοθετήθηκε από το έργο GNU, το Gzip (σύντομο για το GNU zip) παράγει συμπιεσμένα αρχεία που έχουν ένα. επέκταση gz. Μπορείτε να χρησιμοποιήσετε την εντολή gunzip για να αποσυμπιέσετε αρχεία που δημιουργήθηκαν από έναν αριθμό βοηθητικών προγραμμάτων συμπίεσης, συμπεριλαμβανομένου του Gzip.
Bzip2:
-
Από άποψη χρηστικότητας, τα Bzip2 και Gzip είναι παρόμοια. Το Bzip2 παράγει μια καλύτερη αναλογία συμπίεσης από ότι το Gzip, αλλά είναι πολύ πιο αργή. Στην πραγματικότητα, από όλους τους διαθέσιμους κωδικοποιητές συμπίεσης στον Hadoop, το Bzip2 είναι μακράν το πιο αργό. Εάν δημιουργείτε ένα αρχείο που σπάνια θα χρειαστεί να κάνετε ερώτηση και ο χώρος είναι σε υψηλό ασφάλιστρο, ίσως αξίζει να εξεταστεί το Bzip2.
-
Snappy: Ο κωδικοποιητής Snappy από την Google παρέχει μέτριες αναλογίες συμπίεσης, αλλά γρήγορες ταχύτητες συμπίεσης και αποσυμπίεσης. (Στην πραγματικότητα, έχει τις ταχύτερες ταχύτητες αποσυμπίεσης, γεγονός που καθιστά ιδιαίτερα επιθυμητό τα σύνολα δεδομένων που πιθανόν να ερωτηθούν συχνά.)
Ο κωδικοποιητής Snappy είναι ενσωματωμένος στο Hadoop Common, ένα σύνολο κοινών βοηθημάτων που υποστηρίζει άλλα υποπρογράμματα Hadoop. Μπορείτε να χρησιμοποιήσετε το Snappy ως πρόσθετο για πιο πρόσφατες εκδόσεις του Hadoop που δεν παρέχουν ακόμη υποστήριξη Snappy για κωδικοποιητές.
-
LZO: Παρόμοια με το Snappy, το LZO (σύντομο για το Lempel-Ziv-Oberhumer, το τρίο των επιστημόνων υπολογιστών που έρχεται με τον αλγόριθμο) παρέχει μέτριες αναλογίες συμπίεσης, αλλά γρήγορες ταχύτητες συμπίεσης και αποσυμπίεσης. Το LZO είναι εγκεκριμένο σύμφωνα με τη Δημόσια Άδεια GNU (GPL).
Η LZO υποστηρίζει τη διαχωρίσιμη συμπίεση, η οποία επιτρέπει την παράλληλη επεξεργασία των διαχωριστικών αρχείων συμπιεσμένου κειμένου από τις εργασίες MapReduce. Το LZO πρέπει να δημιουργήσει ένα ευρετήριο όταν συμπιέζει ένα αρχείο, επειδή με μπλοκ συμπίεσης μεταβλητού μήκους απαιτείται ένα ευρετήριο για να ειδοποιηθεί ο χαρτογράφος από όπου μπορεί να χωρίσει με ασφάλεια το συμπιεσμένο αρχείο. Το LZO είναι πραγματικά πραγματικά επιθυμητό μόνο αν χρειάζεται να συμπιέσετε αρχεία κειμένου.
-
Κωδικοποιητές Hadoop Κωδικοποιητής
Επέκταση αρχείου
Βαθμός συμπίεσης | Ταχύτητα συμπίεσης | Gzip | . gz | Όχι |
---|---|---|---|---|
Μέτρια | Μέτρια | Bzip2 | . bz2 | Ναι |
Υψηλή | Αργή | Στιγμιαία | . snappy | Όχι |
Μεσαία | Γρήγορα | LZO | . lz | Όχι, εκτός αν ευρεθεί |
Μεσαίο | Γρήγορο | Όλοι οι αλγόριθμοι συμπίεσης πρέπει να κάνουν αντισταθμίσεις μεταξύ του βαθμού συμπίεσης και της ταχύτητας συμπίεσης που μπορούν να επιτύχουν. Οι κωδικοποιητές που παρατίθενται στο παράθυρο σας παρέχουν κάποιο έλεγχο σχετικά με το τι πρέπει να έχει ο χρόνος συμπίεσης για την ισορροπία μεταξύ του λόγου συμπίεσης και της ταχύτητας. | Για παράδειγμα, το Gzip σας επιτρέπει να ρυθμίσετε την ταχύτητα της συμπίεσης καθορίζοντας έναν αρνητικό ακέραιο αριθμό (ή λέξη-κλειδί), όπου το -1 δείχνει το ταχύτερο επίπεδο συμπίεσης και το -9 δείχνει το πιο αργό επίπεδο συμπίεσης. Το προεπιλεγμένο επίπεδο συμπίεσης είναι -6. |