Σπίτι Τάσεις Μια σύντομη εισαγωγή στο apache και στην χοίρων

Μια σύντομη εισαγωγή στο apache και στην χοίρων

Anonim

Το Apache Hive είναι ένα πλαίσιο που βρίσκεται πάνω από τον Hadoop για να κάνει ad-hoc ερωτήσεις σχετικά με τα δεδομένα στο Hadoop. Η ομάδα Hive υποστηρίζει το HiveQL, το οποίο είναι παρόμοιο με το SQL, αλλά δεν υποστηρίζει τις ολοκληρωμένες δομές του SQL.


Η κυψέλη καλύπτει το ερώτημα HiveQL σε ένα πρόγραμμα Java MapReduce και στη συνέχεια το υποβάλλει στο σύμπλεγμα Hadoop. Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί με τη χρήση του HiveQL και του Java MapReduce, αλλά με τη χρήση του Java MapReduce θα χρειαστεί πολύς κώδικας για εγγραφή / σμίκρυνση σε σύγκριση με το HiveQL. Έτσι, η HiveQL αυξάνει την παραγωγικότητα των προγραμματιστών.


Για να συνοψίσουμε, η κυψέλη, μέσω της γλώσσας HiveQL, παρέχει μια αφαίρεση υψηλότερου επιπέδου στον προγραμματισμό Java MapReduce. Όπως συμβαίνει και με οποιαδήποτε άλλη αφαίρεση υψηλού επιπέδου, υπάρχει μια μικρή γενική απόδοση χρησιμοποιώντας το HiveQL σε σύγκριση με το Java MapReduce, αλλά η κοινότητα Hive προσπαθεί να περιορίσει αυτό το χάσμα για τα περισσότερα από τα συνηθισμένα σενάρια.


Κατά μήκος της ίδιας γραμμής, το Pig παρέχει μια υψηλότερη στάθμη άντλησης πάνω από το MapReduce. Ο χοίρος υποστηρίζει κατασκευές PigLatin, οι οποίες μετατρέπονται στο πρόγραμμα Java MapReduce και στη συνέχεια υποβάλλονται στο σύμπλεγμα Hadoop.



Ενώ η HiveQL είναι μια δηλωτική γλώσσα όπως η SQL, το PigLatin είναι μια γλώσσα ροής δεδομένων. Η έξοδος ενός κατασκευάσματος PigLatin μπορεί να σταλεί ως είσοδος σε άλλο κατασκεύασμα PigLatin και ούτω καθεξής.


Λίγο καιρό, ο Cloudera δημοσίευσε στατιστικά στοιχεία σχετικά με τον χαρακτήρα φόρτου εργασίας σε ένα τυπικό σύμπλεγμα Hadoop και μπορεί εύκολα να παρατηρηθεί ότι οι εργασίες Pig and Hive αποτελούν ένα μεγάλο μέρος των θέσεων εργασίας σε ένα σύμπλεγμα Hadoop. Λόγω της υψηλότερης παραγωγικότητας των προγραμματιστών, πολλές εταιρείες επιλέγουν περιλήψεις υψηλότερου επιπέδου όπως το Χοιρινό και η Κυψέλη. Έτσι, μπορούμε να ποντάρουμε ότι θα υπάρξουν πολλές θέσεις εργασίας γύρω από την κυψέλη και το χοίρο σε σύγκριση με την ανάπτυξη MapReduce.



Παρόλο που το Βιβλίο Προγραμματισμού Χοίρων δημοσιεύθηκε τον Οκτώβριο του 2011, το βιβλίο Programming Hive δημοσιεύτηκε πιο πρόσφατα, τον Οκτώβριο του 2012. Για όσους έχουν εμπειρία με το RDBMS, ξεκινώντας με την κυψέλη θα ήταν μια καλύτερη επιλογή από το ξεκίνημα με το Pig. Επίσης, σημειώστε ότι η γλώσσα PigLatin δεν είναι πολύ δύσκολο να ξεκινήσετε.


Για το υποκείμενο σύμπλεγμα Hadoop, είναι διαφανές αν έχει υποβληθεί μια εργασία Java MapReduce ή έχει υποβληθεί μια εργασία MapReduce μέσω του Hive and Pig. Λόγω της φύσης των θέσεων εργασίας MapReduce, οι θέσεις εργασίας που υποβάλλονται μέσω της κυψέλης και της χοίρου είναι επίσης παρτίδες προσανατολισμένες στη φύση.


Για τις απαιτήσεις απόκρισης σε πραγματικό χρόνο, το Hive and Pig δεν ικανοποιεί τις απαιτήσεις λόγω της προαναφερθείσας παρτίδας προσανατολισμένης φύσης των εργασιών MapReduce. Ο Cloudera ανέπτυξε το Impala, το οποίο βασίζεται στο Dremel (έκδοση από την Google) για διαδραστικές ad-hoc ερωτήσεις πάνω από τον Hadoop. Το Impala υποστηρίζει ερωτήματα τύπου SQL και είναι συμβατό με το HiveQL. Έτσι, όλες οι εφαρμογές που είναι χτισμένες στην κορυφή της κυψέλης θα πρέπει να λειτουργούν με ελάχιστες αλλαγές με την Impala. Η κύρια διαφορά μεταξύ της κυψέλης και της Impala είναι ότι ενώ η HiveQL μετατρέπεται σε εργασίες Java MapReduce, η Impala δεν καλύπτει το ερώτημα SQL σε εργασίες Java MapReduce.


Θα πρέπει να πάτε με Χοιρινά ή Κυψέλη για μια συγκεκριμένη απαίτηση; Αυτό είναι ένα θέμα για ένα άλλο blog.


Αναδημοσίευτη με άδεια από τον Praveen Sripati. Αρχικό άρθρο μπορείτε να βρείτε εδώ: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

Μια σύντομη εισαγωγή στο apache και στην χοίρων