Βίντεο: Sqoop Import and Export data from RDMBS and HDFS 2024
Το HDFS είναι ένα από τα δύο βασικά συστατικά του πλαισίου Hadoop. το άλλο είναι το υποδειγματικό υπολογιστικό σύστημα που είναι γνωστό ως MapReduce. Ένα κατανεμημένο σύστημα αρχείων είναι ένα σύστημα αρχείων που διαχειρίζεται την αποθήκευση σε ένα δικτυακό σύμπλεγμα μηχανών.
Το HDFS αποθηκεύει δεδομένα σε μπλοκ , μονάδες των οποίων το προεπιλεγμένο μέγεθος είναι 64MB. Τα αρχεία που θέλετε να αποθηκευτούν σε HDFS πρέπει να σπάσουν σε κομμάτια μεγέθους μπλοκ που στη συνέχεια αποθηκεύονται ανεξάρτητα σε όλο το σύμπλεγμα. Μπορείτε να χρησιμοποιήσετε την εντολή γραμμής fsck για να απαριθμήσετε τα μπλοκ που συνθέτουν κάθε αρχείο σε HDFS, ως εξής:
% hadoop fsck / -files -bloks
Επειδή το Hadoop είναι γραμμένο σε Java, όλες οι αλληλεπιδράσεις με τα αρχεία HDFS διαχειρίζονται μέσω του Java API. Λάβετε υπόψη, ωστόσο, ότι δεν χρειάζεται να είστε γκουρού Java για να εργαστείτε με αρχεία σε HDFS. Διάφορες διεπαφές Hadoop που είναι ενσωματωμένες στην κορυφή του Java API είναι τώρα σε κοινή χρήση (και κρύβουν Java), αλλά το πιο απλό είναι η διεπαφή γραμμής εντολών. χρησιμοποιήστε τη γραμμή εντολών για να αλληλεπιδράσετε με το HDFS στα παρεχόμενα παραδείγματα.
Μπορείτε να αποκτήσετε πρόσβαση στο κέλυφος του συστήματος αρχείων Hadoop εκτελώντας μια φόρμα της εντολής hadoop. Όλες οι εντολές hadoop χρησιμοποιούνται από το σενάριο bin / hadoop. (Για να ανακτήσετε μια περιγραφή όλων των εντολών hadoop, εκτελέστε το script hadoop χωρίς να καθορίσετε οποιαδήποτε επιχειρήματα.) Η εντολή hadoop έχει τη σύνταξη
hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Η επιλογή config confdir αντικαθιστά τον προεπιλεγμένο κατάλογο ρυθμίσεων ($ HADOOP_HOME / conf), έτσι ώστε να μπορείτε εύκολα να προσαρμόσετε τη διαμόρφωση περιβάλλοντος Hadoop. Οι γενικές επιλογές και οι επιλογές εντολών είναι ένα κοινό σύνολο επιλογών που υποστηρίζονται από πολλές εντολές.
Οι εντολές του κελύφους του συστήματος αρχείων Hadoop (για διασυνδέσεις γραμμής εντολών) λαμβάνουν ομοιόμορφα αναγνωριστικά πόρων (URI) ως επιχειρήματα. Ένα URI είναι μια σειρά χαρακτήρων που χρησιμοποιείται για την αναγνώριση ενός ονόματος ή ενός πόρου ιστού.
Η συμβολοσειρά μπορεί να περιλαμβάνει ένα όνομα - έναν προσδιοριστή για τη φύση της πηγής δεδομένων. Για το HDFS, το όνομα του σχήματος είναι hdfs, και για το τοπικό σύστημα αρχείων, το όνομα του σχήματος είναι αρχείο. Εάν δεν καθορίσετε ένα όνομα συστήματος, το προεπιλεγμένο είναι το όνομα του σχήματος που έχει καθοριστεί στο αρχείο ρυθμίσεων. Ένα αρχείο ή κατάλογο σε HDFS μπορεί να καθοριστεί με έναν πλήρως καταρτισμένο τρόπο, όπως σε αυτό το παράδειγμα:
hdfs: // namenodehost / parent / child
Ή μπορεί απλώς να είναι / parent / child, στο hdfs: // namenodehost.
Οι εντολές του κελύφους του συστήματος αρχείων Hadoop, οι οποίες είναι παρόμοιες με τις εντολές του αρχείου Linux, έχουν την ακόλουθη γενική σύνταξη:
hadoop hdfs dfs - file_cmd
Οι αναγνώστες με προηγούμενη εμπειρία Hadoop ενδέχεται να ρωτήσουν: για την εντολή hadoop fs;"Η εντολή fs είναι απαρχαιωμένη στη σειρά έκδοσης Hadoop 0. 2, αλλά εξακολουθεί να λειτουργεί σε Hadoop 2. Χρησιμοποιήστε το hdfs dfs αντ 'αυτού.
Όπως μπορείτε να περιμένετε, χρησιμοποιείτε την εντολή mkdir για να δημιουργήσετε έναν κατάλογο σε HDFS, ακριβώς όπως θα κάνατε σε Linux ή σε λειτουργικά συστήματα που βασίζονται σε Unix. Αν και το HDFS έχει έναν προεπιλεγμένο κατάλογο εργασίας, / user / $ USER, όπου $ USER είναι το όνομα χρήστη που χρησιμοποιείτε για login, πρέπει να δημιουργήσετε τον εαυτό σας χρησιμοποιώντας τη σύνταξη
$ hadoop hdfs dfs -mkdir / Για παράδειγμα, για να δημιουργήσετε έναν κατάλογο με όνομα "joanna", εκτελέστε αυτήν την εντολή mkdir: $ hadoop hdfs dfs -mkdir / user / joanna
Χρησιμοποιήστε την εντολή Hadoop put για να αντιγράψετε ένα αρχείο από το τοπικό σύστημα αρχείων σας σε HDFS:
$ hadoop hdfs dfs -put
όνομα_αρχείου
/ user / login_user_name Για παράδειγμα, για να αντιγράψετε ένα αρχείο που ονομάζεται δεδομένα. txt σε αυτόν τον νέο κατάλογο, εκτελέστε την ακόλουθη εντολή put: $ hadoop hdfs dfs -put data. txt / user / joanna
Εκτελέστε την εντολή ls για να δείτε ένα αρχείο καταγραφής HDFS:
$ hadoop hdfs dfs -ls. Βρέθηκαν 2 στοιχεία drwxr-xr-x - joanna supergroup 0 2013-06-30 12: 25 / user / joanna -rw-r- r-- 1 joanna supergroup 118 2013-06-30 12: 15 / user / joanna / δεδομένα. txt
Η ίδια η καταχώριση αρχείων καταρρέει όπως περιγράφεται σε αυτήν τη λίστα:
Στη στήλη 1 εμφανίζεται η κατάσταση αρχείου
-
("d" για τον κατάλογο και "-". Οι τρεις τύποι δικαιωμάτων - να διαβάσετε (r), να γράψετε (w) και να εκτελέσετε (x) - είναι οι ίδιοι που βρίσκετε στα συστήματα Linux και Unix. Η άδεια εκτέλεσης για ένα αρχείο αγνοείται επειδή δεν μπορείτε να εκτελέσετε ένα αρχείο σε HDFS. Τα δικαιώματα ομαδοποιούνται από τον κάτοχο, την ομάδα και το κοινό (όλοι οι άλλοι). Η στήλη 2 δείχνει τον παράγοντα αναπαραγωγής για αρχεία. (Η έννοια της αναπαραγωγής δεν ισχύει για τους καταλόγους.) Τα μπλοκ που συνθέτουν ένα αρχείο σε HDFS αναπαράγονται για να εξασφαλιστεί η ανοχή σφάλματος. Ο παράγοντας αναπαραγωγής
-
, ή ο αριθμός των αντιγράφων που διατηρούνται για ένα συγκεκριμένο αρχείο, μπορεί να ρυθμιστεί. Μπορείτε να καθορίσετε τον παράγοντα αναπαραγωγής όταν δημιουργείται το αρχείο ή αργότερα, μέσω της εφαρμογής σας. Οι στήλες 3 και 4 δείχνουν το αρχείο ιδιοκτήτη
-
και ομάδα . Το Supergroup είναι το όνομα της ομάδας superusers και ένας superuser είναι ο χρήστης με την ίδια ταυτότητα με τη διαδικασία NameNode. Εάν ξεκινήσετε το ΌνομαNode, είστε ο υπερ-χρήστης για τώρα. Αυτή είναι μια ειδική ομάδα - οι τακτικοί χρήστες θα έχουν τα userids τους ανήκουν σε μια ομάδα χωρίς ειδικά χαρακτηριστικά - μια ομάδα που απλά ορίζεται από έναν διαχειριστή Hadoop. Η στήλη 5 δείχνει το μέγεθος του αρχείου σε bytes ή το 0 αν είναι ένας κατάλογος. Οι στήλες 6 και 7 δείχνουν την ημερομηνία και την ώρα της τελευταίας τροποποίησης, αντίστοιχα.
-
Στη στήλη 8 εμφανίζεται το μη εξουσιοδοτημένο όνομα (δηλαδή το όνομα του σχήματος δεν έχει καθοριστεί) του αρχείου ή του καταλόγου.
-
Χρησιμοποιήστε την εντολή Hadoop get για να αντιγράψετε ένα αρχείο από το HDFS στο τοπικό σας σύστημα αρχείων:
-
$ hadoop hdfs dfs -get
όνομα_αρχείου
/ user / login_user_name εντολή διαγραφής ενός αρχείου ή ενός κεντρικού καταλόγου: $ hadoop hdfs dfs -rm
όνομα_αρχείου
/ user / login_user_name Χρησιμοποιήστε την εντολή hadoop hdfs dfs -help για να λάβετε λεπτομερή βοήθεια για κάθε επιλογή.