Εκμάθηση Hadoop Pig: Τι είναι το Apache Pig; Archiδομή, Παράδειγμα
⚡ Έξυπνη Σύνοψη
Το Apache Pig είναι μια πλατφόρμα υψηλού επιπέδου για την ανάλυση μεγάλων συνόλων δεδομένων στο Hadoop, συνδυάζοντας τη γλώσσα ροής δεδομένων Pig Latin με ένα περιβάλλον εκτέλεσης που μεταγλωττίζει κάθε σενάριο σε MapReduce, Tez ή Spark εργασίες αυτόματα.
Αυτό το σεμινάριο ξεκινά με την ιδέα πίσω από το Apache Pig, στη συνέχεια σας καθοδηγεί στην εγκατάστασή του και στην εκτέλεση ενός πλήρους λατινικού σεναρίου Pig από την αρχή μέχρι το τέλος.
Τι είναι το Apache Pig;
Το γουρούνι είναι υψηλού επιπέδου γλώσσα προγραμματισμού χρήσιμο για την ανάλυση μεγάλων συνόλων δεδομένων. Το Pig ήταν αποτέλεσμα της προσπάθειας ανάπτυξης στο Yahoo!
Σε ένα πλαίσιο MapReduce, τα προγράμματα πρέπει να μεταφραστούν σε μια σειρά από στάδια Map και Reduce. Ωστόσο, αυτό δεν είναι ένα μοντέλο προγραμματισμού με το οποίο είναι εξοικειωμένοι οι αναλυτές δεδομένων. Έτσι, για να γεφυρωθεί αυτό το κενό, ένα abstracη ενορία που ονομάζεται Χοίρος χτίστηκε πάνω σε Hadoop.
Το Apache Pig επιτρέπει στους ανθρώπους να επικεντρώνονται περισσότερο στην ανάλυση μαζικών συνόλων δεδομένων και να αφιερώνουν λιγότερο χρόνο γράφοντας προγράμματα MapReduce. Όπως και τα γουρούνια, που τρώνε τα πάντα, η γλώσσα προγραμματισμού Apache Pig έχει σχεδιαστεί για να λειτουργεί με οποιοδήποτε είδος δεδομένων. Γι' αυτό και το όνομα, Pig! Η μασκότ του έργου παρακάτω, υπογραμμίζει το ίδιο σημείο.
Το έργο είναι ακόμα ενεργό. Apache Pig 0.18.0 κυκλοφόρησε στις 15 Σεπτεμβρίου 2025 και προσθέτει υποστήριξη για Hadoop 3, Tez 0.10, Hive 3, Spark 3, HBase 2 και Python το 3, σύμφωνα με την Σελίδα κυκλοφορίας του Apache PigΗ παρακάτω αναλυτική παρουσίαση γράφτηκε αρχικά στην πολύ παλαιότερη γραμμή 0.12.1, επομένως μερικά βήματα φέρουν μια σημείωση όπου μια τρέχουσα έκδοση συμπεριφέρεται διαφορετικά.
Χοίρος Archiδομή
Η αρχιτεκτονική του Pig αποτελείται από δύο στοιχεία:
- Γουρουνάκι λατινικό, που είναι μια γλώσσα
- Ένα περιβάλλον χρόνου εκτέλεσης, για την εκτέλεση προγραμμάτων Pig Latin.
Ένα πρόγραμμα Pig Latin αποτελείται από μια σειρά λειτουργιών ή μετασχηματισμών που εφαρμόζονται στα δεδομένα εισόδου για την παραγωγή εξόδου. Αυτές οι λειτουργίες περιγράφουν μια ροή δεδομένων η οποία μεταφράζεται σε μια εκτελέσιμη αναπαράσταση από το περιβάλλον εκτέλεσης Hadoop Pig. Παρακάτω, τα αποτελέσματα αυτών των μετασχηματισμών είναι μια σειρά από ΜΕΙΩΣΗ ΧΑΡΤΗ εργασίες για τις οποίες ένας προγραμματιστής δεν γνωρίζει. Έτσι, κατά κάποιο τρόπο, το Pig στο Hadoop επιτρέπει στον προγραμματιστή να επικεντρωθεί στα δεδομένα και όχι στη φύση της εκτέλεσης.
Η Pig Latin είναι μια σχετικά άκαμπτη γλώσσα που χρησιμοποιεί γνωστές λέξεις-κλειδιά από την επεξεργασία δεδομένων, π.χ. Join (Ένταξη), Group (Ομαδοποίηση) και Filter (Φίλτρο). Το παρακάτω διάγραμμα tracΑποτελεί ένα σενάριο από το κέλυφος Grunt μέσω του αναλυτή, του βελτιστοποιητή και του μεταγλωττιστή στο δρόμο του προς τη μηχανή εκτέλεσης.
Λειτουργίες εκτέλεσης
Το Pig στο Hadoop έχει δύο λειτουργίες εκτέλεσης και η αναλυτική παρουσίαση εγκατάστασης παρακάτω τις χρησιμοποιεί και τις δύο:
- Τοπική λειτουργία: Σε αυτήν τη λειτουργία, η γλώσσα Hadoop Pig εκτελείται σε ένα μόνο FMV και χρησιμοποιεί το τοπικό σύστημα αρχείων. Αυτή η λειτουργία είναι κατάλληλη μόνο για ανάλυση μικρών συνόλων δεδομένων χρησιμοποιώντας το Pig στο Hadoop.
- Λειτουργία MapReduce: Σε αυτήν τη λειτουργία, τα ερωτήματα που είναι γραμμένα σε Pig Latin μεταφράζονται σε εργασίες MapReduce και εκτελούνται σε ένα σύμπλεγμα Hadoop (το σύμπλεγμα μπορεί να είναι ψευδο-κατανεμημένο ή πλήρως κατανεμημένο). Η λειτουργία MapReduce με ένα πλήρως κατανεμημένο σύμπλεγμα είναι χρήσιμη για την εκτέλεση του Pig σε μεγάλα σύνολα δεδομένων.
Αυτά τα δύο αποτελούν το κλασικό ζευγάρι. Οι τρέχουσες εκδόσεις παρουσιάζουν στην πραγματικότητα έξι τύπους εκτέλεσης ή exectypes, καθένας από τους οποίους επιλέγεται με το ίδιο -x σημαία, όπως τεκμηριώνεται στην Οδηγός έναρξης για το Pig 0.18.0.
| Εκτελεστικός τύπος | εντολή | Πού τρέχει η εργασία |
|---|---|---|
| τοπικός | γουρούνι -x τοπικό | Μία μόνο JVM έναντι του τοπικού συστήματος αρχείων |
| Tez local | γουρούνι -x tez_local | Μία μόνο JVM που χρησιμοποιεί το runtime του Tez (πειραματικό) |
| Spark τοπικός | γουρούνι -x spark_local | Μία μόνο JVM που χρησιμοποιεί το Spark χρόνος εκτέλεσης (πειραματικό) |
| ΜΕΙΩΣΗ ΧΑΡΤΗ | γουρούνι ή γουρούνι -x mapreduce | Ένα σύμπλεγμα Hadoop με HDFS. Αυτή είναι η προεπιλεγμένη ρύθμιση. |
| Tez | γουρούνι -x tez | Ένα σύμπλεγμα Hadoop που εκτελεί τη μηχανή Tez |
| Spark | γουρούνι -x σπίθα | A Spark, YARN ή Mesos cluster με HDFS |
Τύποι δεδομένων Pig Latin και Operaκορμοί
Πριν γράψετε ένα σενάριο, είναι χρήσιμο να γνωρίζετε τι μπορεί να αποθηκεύσει το Pig και τι μπορεί να κάνει σε αυτό. Το μοντέλο δεδομένων είναι πλήρως ενσωματωμένο, κάτι που επιτρέπει στο Pig να διαβάζει αρχεία καταγραφής και άλλα χαλαρά δομημένα δεδομένα εισόδου που ένας σχεσιακός πίνακας θα απέρριπτε.
Το Pig Latin προσφέρει δύο οικογένειες τύπων:
- Βαθμωτοί τύποι:
int,long,float,double,chararray,bytearray,boolean,datetime,bigintegerκαιbigdecimalΤο παράδειγμα σεναρίου αργότερα δηλώνει κάθε στήλη ωςchararray. - Σύνθετοι τύποι: a πλειάδα είναι ένα διατεταγμένο σύνολο πεδίων και συμπεριφέρεται σαν γραμμή· ένα τσάντα είναι μια μη διατεταγμένη συλλογή πλειάδων και συμπεριφέρεται σαν πίνακας. χάρτη είναι ένα σύνολο ζευγών κλειδιών και τιμών των οποίων το κλειδί πρέπει να είναι ένα
chararray.
Οι χειριστές αναλαμβάνουν έναν μικρό αριθμό θέσεων εργασίας και μια χούφτα από αυτούς φέρουν εις πέρας σχεδόν κάθε αγωγό:
| OperaTor | Τι κάνει |
|---|---|
| ΦΟΡΤΩΣΗ / ΑΠΟΘΗΚΕΥΣΗ | Διαβάστε μια σχέση από το σύστημα αρχείων και γράψτε πίσω το αποτέλεσμα |
| FILTER | Διατηρήστε μόνο τις πλειάδες που ταιριάζουν με μια συνθήκη |
| FOREAC … ΔΗΜΙΟΥΡΓΙΑ | Εργασία στήλη προς στήλη, δημιουργία νέων πεδίων |
| ΟΜΑΔΑ / ΣΥΝΟΜΑΔΑ | Ομαδοποίηση μίας σχέσης, ή δύο ή περισσότερων σχέσεων, με βάση ένα κλειδί |
| Ενώνω | Συνδυάστε σχέσεις με μια εσωτερική ή εξωτερική ένωση |
| ΕΝΩΣΗ / ΔΙΑΧΩΡΙΣΜΟΣ | Συγχώνευση σχέσεων ή διαμέριση μίας σε περισσότερες |
| ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ / ΔΙΑΦΟΡΕΤΙΚΟ / ΟΡΙΟ | Ταξινόμηση, κατάργηση διπλότυπων και περιορισμός του αριθμού των πλειάδων |
| ΑΠΟΡΡΙΨΗ / ΠΕΡΙΓΡΑΦΗ / ΕΞΗΓΗΣΗ / ΕΙΚΟΝΟΓΡΑΦΗΣΗ | Επιθεώρηση αποτελεσμάτων, σχημάτων, σχεδίων εκτέλεσης και δειγματοληπτικών εκτελέσεων |
Οι τέσσερις χειριστές επιθεώρησης έχουν επίσης συντομεύσεις Grunt, κάτι που εξοικονομεί χρόνο.ping κατά τη διάρκεια της αποσφαλμάτωσης: \d για ΑΠΟΡΡΙΨΗ, \de για ΠΕΡΙΓΡΑΦΗ, \e για ΕΞΗΓΗΣΗ και \i για το ILLUSTRATE.
Προϋποθέσεις
Το Pig είναι ένα εργαλείο που λειτουργεί από την πλευρά του πελάτη. Αναλύει ένα σενάριο, σχεδιάζει την εργασία και υποβάλλει εργασίες, αλλά δεν παρέχει χώρο αποθήκευσης ή δικό του σύμπλεγμα, επομένως πρέπει πρώτα να υπάρχει μια λειτουργική εγκατάσταση Hadoop. Η λίστα απαιτήσεων του Apache είναι σύντομη.
| Συστατικό | Απαίτηση | Γιατί είναι απαραίτητο |
|---|---|---|
| Hadoop | Hadoop 2.x ή 3.x, με εξαγωγή του HADOOP_HOME | Παρέχει HDFS και τη μηχανή εκτέλεσης. Χωρίς το HADOOP_HOME, το Pig 0.18.0 επιστρέφει σε ένα ενσωματωμένο Hadoop 2.7.3. |
| Java | Java 1.7 ή νεότερη έκδοση, με το JAVA_HOME ορισμένο στη ρίζα της εγκατάστασης | Οι δαίμονες Pig and the Hadoop είναι Java προγράμματα |
| Python (Προαιρετικό) | Python 2.7 | Απαιτείται μόνο για streaming Python λειτουργίες που ορίζονται από το χρήστη |
| Μυρμήγκι (προαιρετικό) | Μυρμήγκι 1.8 | Απαιτείται μόνο κατά την κατασκευή ή την επαναμεταγλώττιση του Pig από τον πηγαίο κώδικα |
Δύο πρακτικά σημεία βρίσκονται δίπλα σε αυτήν τη λίστα. Πρώτον, εκτελέστε τα πάντα ως χρήστης Linux που έχει ήδη έναν αρχικό κατάλογο στο ΚΑΕ και άδεια εγγραφής σε αυτό· αυτό το σεμινάριο χρησιμοποιεί hduser, ο λογαριασμός που δημιουργήθηκε κατά την εγκατάσταση του Hadoop. Δεύτερον, ξεκινήστε το σύμπλεγμα πριν από την εκκίνηση του Pig σε λειτουργία MapReduce, επειδή το Pig αποτυγχάνει αμέσως εάν τα NameNode και ResourceManager είναι εκτός λειτουργίας. Εάν το Hadoop δεν είναι ακόμα εγκατεστημένο, επεξεργαστείτε τα παρακάτω. πώς να εγκαταστήσετε το Hadoop πρώτη.
Πώς να κατεβάσετε και να εγκαταστήσετε το Pig
Τώρα σε αυτό το σεμινάριο Apache Pig, θα μάθουμε πώς να κατεβάσετε και να εγκαταστήσετε το Pig:
Πριν ξεκινήσουμε την πραγματική διαδικασία, βεβαιωθείτε ότι έχετε εγκαταστήσει το Hadoop. Αλλάξτε τον χρήστη σε 'hduser' (το αναγνωριστικό που χρησιμοποιήθηκε κατά τη ρύθμιση παραμέτρων του Hadoop. Μπορείτε να μεταβείτε στο αναγνωριστικό χρήστη που χρησιμοποιήθηκε κατά τη ρύθμιση παραμέτρων του Hadoop).
Βήμα 1) Κατεβάστε την τελευταία σταθερή έκδοση του Pig Hadoop από οποιαδήποτε από τις διαθέσιμες τοποθεσίες mirror στη διεύθυνση
https://pig.apache.org/releases.html
Επιλέξτε το αρχείο tar.gz (και όχι το src.tar.gz) για λήψη, όπως φαίνεται παρακάτω.
Βήμα 2) Μόλις ολοκληρωθεί η λήψη, μεταβείτε στον κατάλογο που περιέχει το ληφθέν αρχείο tar και μετακινήστε το αρχείο tar στη θέση όπου θέλετε να εγκαταστήσετε το Pig Hadoop. Σε αυτήν την περίπτωση, θα μετακινηθούμε στο /usr/local.
Μετακινηθείτε στον κατάλογο που θα περιέχει τα αρχεία Pig Hadoop.
cd /usr/local
Extracτα περιεχόμενα του αρχείου tar όπως παρακάτω.
sudo tar -xvf pig-0.12.1.tar.gz
Βήμα 3) Τροποποιήστε το ~/.bashrc για να προσθέσετε μεταβλητές περιβάλλοντος που σχετίζονται με το Pig.
Ανοίξτε το αρχείο ~/.bashrc σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου της επιλογής σας και κάντε τις παρακάτω τροποποιήσεις.
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Βήμα 4) Τώρα, ορίστε την πηγή αυτής της διαμόρφωσης περιβάλλοντος χρησιμοποιώντας την παρακάτω εντολή.
. ~/.bashrc
Βήμα 5) Πρέπει να επαναμεταγλωττίσουμε το Pig για να υποστηρίζει το Hadoop 2.2.0.
Ακολουθούν τα βήματα για να το κάνετε αυτό.
Μεταβείτε στον αρχικό κατάλογο Pig.
cd $PIG_HOME
Εγκαταστήστε το Ant.
sudo apt-get install ant
Σημείωση: Η λήψη θα ξεκινήσει και θα διαρκέσει ανάλογα με την ταχύτητα του διαδικτύου σας.
Επαναμεταγλώττιση Pig.
sudo ant clean jar-all -Dhadoopversion=23
Λάβετε υπόψη ότι σε αυτήν τη διαδικασία αναμεταγλώττισης λαμβάνονται πολλά στοιχεία, επομένως το σύστημα θα πρέπει να είναι συνδεδεμένο στο διαδίκτυο.
Επίσης, σε περίπτωση που αυτή η διαδικασία κολλήσει κάπου και δεν δείτε καμία κίνηση στη γραμμή εντολών για περισσότερο από 20 λεπτά, πατήστε Ctrl + c και εκτελέστε ξανά την ίδια εντολή.
Στην περίπτωσή μας, χρειάζονται 20 λεπτά.
Αυτό το βήμα αναμεταγλώττισης ανήκει στην εποχή 0.12.1, όταν τα jar που στάλθηκαν κατασκευάστηκαν με βάση το Hadoop 1 και το -Dhadoopversion=23 Η flag άλλαξε την έκδοση Ant στη γραμμή Hadoop 0.23 και 2.x. Το Apache Pig 0.18.0 διαθέτει δυαδικά αρχεία που εκτελούνται ήδη σε Hadoop 2.7 και νεότερες εκδόσεις, καθώς και σε Hadoop 3, επομένως σε μια τρέχουσα έκδοση μπορείτε κανονικά να αποσυμπιέσετε το tarball και να μεταβείτε απευθείας στην παρακάτω δοκιμή.
Βήμα 6) Δοκιμάστε την εγκατάσταση του Pig χρησιμοποιώντας την εντολή
pig -help
Παράδειγμα σεναρίου Pig
Με εγκατεστημένο το Pig, το υπόλοιπο αυτού του σεμιναρίου Apache Pig εκτελεί ένα πλήρες σενάριο. Θα χρησιμοποιήσουμε τα Pig Scripts για να βρούμε τον αριθμό των προϊόντων που πωλούνται σε κάθε χώρα.
Είσοδος: Το σύνολο δεδομένων εισόδου μας είναι ένα αρχείο CSV, SalesJan2009.csv.
Βήμα 1) Ξεκινήστε το Hadoop.
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Βήμα 2) Το Pig in Big Data λαμβάνει ένα αρχείο από το HDFS σε λειτουργία MapReduce και αποθηκεύει τα αποτελέσματα πίσω στο HDFS.
Αντιγράψτε το αρχείο SalesJan2009.csv (που είναι αποθηκευμένο στο τοπικό σύστημα αρχείων στη διεύθυνση ~/input/SalesJan2009.csv) στον αρχικό κατάλογο HDFS (Hadoop Distributed File System).
Εδώ σε αυτό το παράδειγμα Apache Pig, το αρχείο βρίσκεται στον φάκελο input. Εάν το αρχείο είναι αποθηκευμένο σε κάποια άλλη τοποθεσία, δώστε αυτό το όνομα.
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Επαληθεύστε εάν το αρχείο αντιγράφηκε όντως ή όχι.
$HADOOP_HOME/bin/hdfs dfs -ls /
Βήμα 3) Διαμόρφωση χοίρου.
Αρχικά, μεταβείτε στο $PIG_HOME/conf και κρατήστε ένα αντίγραφο του αρχικού αρχείου ιδιοτήτων.
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Ανοίξτε το pig.properties χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου της επιλογής σας και καθορίστε τη διαδρομή του αρχείου καταγραφής χρησιμοποιώντας το pig.logfile.
sudo gedit pig.properties
Το καταγραφικό θα χρησιμοποιήσει αυτό το αρχείο για να καταγράψει σφάλματα.
Βήμα 4) Εκτελέστε την εντολή 'pig', η οποία θα ξεκινήσει τη γραμμή εντολών Pig, ένα διαδραστικό κέλυφος για ερωτήματα Pig.
pig
Βήμα 5) Στη γραμμή εντολών Grunt για το Pig, εκτελέστε τις παρακάτω εντολές Pig με τη σειρά.
— Α. Φορτώστε το αρχείο που περιέχει δεδομένα.
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
Πατήστε Enter μετά από αυτήν την εντολή.
— Β. Ομαδοποίηση δεδομένων ανά πεδίο Χώρα.
GroupByCountry = GROUP salesTable BY Country;
— Γ. Για κάθε πλειάδα στο 'GroupByCountry', δημιουργήστε την προκύπτουσα συμβολοσειρά της μορφής Όνομα Χώρας: Αριθμός πωληθέντων προϊόντων.
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Πατήστε Enter μετά από αυτήν την εντολή.
— Δ. Αποθηκεύστε τα αποτελέσματα της ροής δεδομένων στον κατάλογο 'pig_output_sales' στο HDFS.
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Αυτή η εντολή θα χρειαστεί λίγο χρόνο για να εκτελεστεί. Μόλις ολοκληρωθεί, θα πρέπει να δείτε την ακόλουθη οθόνη.
Βήμα 6) Το αποτέλεσμα μπορεί να φανεί μέσω της διεπαφής εντολών ως εξής:
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Τα αποτελέσματα μπορούν επίσης να προβληθούν μέσω μιας διεπαφής ιστού.
Ανοίξτε το http://localhost:50070/ σε ένα πρόγραμμα περιήγησης ιστού.
Η θύρα 50070 είναι το web UI του NameNode στο Hadoop 2. Το Hadoop 3 μετέφερε την ίδια σελίδα στη θύρα 9870, επομένως χρησιμοποιήστε αυτήν τη διεύθυνση εάν το σύμπλεγμά σας εκτελεί το Hadoop 3.
Τώρα επιλέξτε «Περιήγηση στο σύστημα αρχείων» και μεταβείτε στο /user/hduser/pig_output_sales.
Ανοίξτε το part-r-00000 για να διαβάσετε τα ζεύγη χώρας και product-count που παρήγαγε το σενάριο.
Apache Pig εναντίον Hive εναντίον MapReduce
Το Pig σπάνια αξιολογείται μόνο του. Το συνηθισμένο ερώτημα είναι αν μια θέση εργασίας ανήκει στο Pig, στο Κυψέλη ή σε ένα χειρόγραφο πρόγραμμα MapReduce, αφού και τα τρία καταλήγουν ως εργασίες στο ίδιο σύμπλεγμα.
| Άποψη | MapReduce (Java) | Apache χοίρων | Κυψέλη Apache |
|---|---|---|---|
| περιβάλλον λειτουργίας | Java API | Pig Latin, μια γλώσσα σεναρίων ροής δεδομένων | HiveQL, μια διάλεκτος SQL |
| Επίπεδο κοιλιακώνtracσμού | Χαμηλός | Μέτριας Δυσκολίας | Ψηλά |
| Τυπικός χρήστης | Java προγραμματιστή | Μηχανικός δεδομένων ή ερευνητής | Αναλυτής με εξοικείωση με την SQL |
| Δεδομένα που ταιριάζουν | Οτιδήποτε, χειριζόμενο χειροκίνητα | Δομημένο και ημιδομημένο· το σχήμα είναι προαιρετικό κατά τον χρόνο φόρτωσης | Δομημένοι πίνακες που έχουν καταχωρηθεί σε μετα-αποθετήριο |
| Code τόμος | Οι περισσότερες γραμμές | Λιγότερες γραμμές | Λιγότερες γραμμές για ένα ερώτημα |
| Εκτελείται ως | Μια εργασία MapReduce | Μεταγλωττίζεται σε MapReduce, Tez ή Spark θέσεις εργασίας | Μεταγλωττίζεται σε MapReduce, Tez ή Spark θέσεις εργασίας |
| καλύτερα στο | Πλήρης έλεγχος και προσαρμοσμένη λογική | Αγωγοί ETL πολλαπλών σταδίων | Ad hoc ερωτήματα και αναφορές |
Στην πράξη, ο διαχωρισμός είναι απλός. Επιλέξτε το Hive όταν τα δεδομένα μοιάζουν ήδη με πίνακα και η ερώτηση μοιάζει με SQL. Επιλέξτε το Pig όταν η είσοδος είναι ακατάστατη, όταν η διοχέτευση είναι μια αλυσίδα μετασχηματισμών και όχι ένα μόνο ερώτημα ή όταν το ίδιο σενάριο πρέπει να διακλαδωθεί και να επανασυνδεθεί. Επιλέξτε το MapReduce μόνο όταν ούτε το abstracΗ ση μπορεί να εκφράσει τη λογική, επειδή ο αριθμός των γραμμών αυξάνεται γρήγορα.
Ο χοίρος κάθεται επίσης άνετα δίπλα στο υπόλοιπο οικοσύστημα. Sqoop και Flume προσγειώστε τα ακατέργαστα δεδομένα, το Pig ή το Hive τα διαμορφώνουν και ένας χρονοπρογραμματιστής όπως Απάτσι Όουζι συνδέστε τα βήματα σε μια επαναλήψιμη αγωγό. Για μια ευρύτερη εικόνα του πού ταιριάζουν αυτά τα εργαλεία, ανατρέξτε στον οδηγό για μεγάλα δεδομένα και η συλλογή των μεγάλα εργαλεία δεδομένων; για μια εμπορική εναλλακτική λύση ETL στα χειρόγραφα σενάρια, βλ. Τάλεντ.























