Μέγεθος μπλοκ σύνθετη Hadoop XDF
MapReduce διαχωρίζει κάθε αρχείο εισόδου κειμένου σε μία ή περισσότερες εισόδου διαιρέσεις τα οποία από προεπιλογή είναι το μέγεθος μπλοκ HDFS, π.χ. 128 MB
-
Κάθε Διαχωρισμός εισόδου μετατρέπεται από μη συμπιεσμένο κείμενο δεν έχει αναλυθεί σε μια συμπιεσμένη και αναλύθηκε εξόδου είναι xdfd δυαδικό αρχείο στον υποκατάλογο "δεδομένα" του καταλόγου εξόδου – πληροφορίες κεφαλίδας για το σύνολο του xdfd σε ένα αρχείο μετα-δεδομένων μόνο xdfm στον κατάλογο "μεταδεδομένα"
-
Για απόδοση σε μεταγενέστερους προσδιορισμούς, κάθε αρχείο xdfd εξόδου πρέπει να αντιστοιχεί περίπου το μέγεθος μπλοκ HDFS
-
Για να αντισταθμιστεί η συμπίεση XDF επομένως συνήθως πρέπει να αυξήσετε το μέγεθος του αρχείου εξόδου xdfd, αυξάνοντας την είσοδο διαίρεση μέγεθος κατά τη χρήση αυτής της παραμέτρου σε RxHadoopMR():
-
hadoopSwitches="-Dmapred.min.split.size=1000000000"
-
Για τις πιο πρόσφατες Hadoop εγκαταστάσεις με ΝΉΜΑΤΑ, η παράμετρος δεν είναι mapreduce.input.fileinputformat.split.minsize
-
-
Αυξάνοντας την είσοδο διαίρεση μέγεθος περαιτέρω ίσως μειωθεί ο αριθμός των σύνθετων αρχείων XDF και ως εκ τούτου ο αριθμός των parallelized αντιστοίχιση εργασιών σε διαδοχικές αναλύσεις. Αυτό μπορεί να είναι χρήσιμο, εάν ο αριθμός των χάρτη διαθέσιμες υποδοχές ή περιέκτες που είναι μικρός σε σχέση με τον αριθμό των διαιρέσεων. Αντίθετα, όταν πολλές αντιστοίχιση υποδοχές ή περιέκτες που είναι διαθέσιμες, διαιρεί το μικρότερο εισόδου και περισσότερες xdfd μπορεί να έχει ως αποτέλεσμα την ταχύτερη ολοκλήρωση.
-
Παράδειγμα
Εισαγωγή μιας εισαγωγής CSV του 670 MB το φίλτρο Hortonworks χρησιμοποιώντας τα δεδομένα εισόδου προεπιλογή διαίρεση μέγεθος (32MB) δημιουργηθεί 670/32 = 21 xdfd του με ένα rxSummary απόδοση 185". Αύξηση του μεγέθους εισόδου διαίρεση σε 150MB δημιουργήθηκε 5 xdfd του κάθε περίπου 32MB με μια rxSummary απόδοση 68".
rxSetComputeContext (RxHadoopMR(hadoopSwitches =
"-Dmapreduce.input.fileinputformat.split.minsize=150000000"))
rxImport (myCSV, myCXdf, αντικατάσταση = TRUE)
σύνολο # rxSetComputeContext(RxHadoopMR()) ξανά όταν ολοκληρωθεί