Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να χτίσει ένα δείκτη Inverted Με MapReduce

MapReduce είναι ένα μοντέλο παράλληλου προγραμματισμού που αναπτύχθηκε στο Google για μεγάλα σύνολα δεδομένων . Επεξεργάζεται δεδομένα σε κομμάτια παρά σε διαδοχική σειρά. Με τον τρόπο αυτό , στηρίζεται σε ένα χάρτη ζευγών λειτουργίες εισόδου ( πλήκτρα ) και τις αξίες που στη συνέχεια βάζει μέσω της λειτουργίας μείωση - κατά συνέπεια , το όνομά του - να κάνει τα δεδομένα πιο εύκολο να καταλάβει . Αντί να παρέχει τη λειτουργία χάρτη με ένα κλειδί και αξία , ένα ανεστραμμένο ευρετήριο ζεύγη λέξεων και τα έγγραφα για την αναζήτηση κειμένου . Μπορείτε να χρησιμοποιήσετε ανεστραμμένα ευρετήρια σε MapReduce για να δημιουργήσετε ένα ευρετήριο για την αναζήτηση λέξεων-κλειδιών , για παράδειγμα. Οδηγίες
Η 1

Πληκτρολογήστε τον ακόλουθο κώδικα για τη λειτουργία χάρτη :

δημόσια στατική τάξη InvertedIndexerMapper επεκτείνει MapReduceBaseimplements Mapper { ιδιωτική στατική τελική λέξη Text = νέα κείμενο ( ) ? ιδιωτική τελική θέση στατική Text = νέο κείμενο ( ) ?

public void χάρτη ( LongWritable κλειδί , κείμενο val , έξοδος OutputCollector , Reporter δημοσιογράφος ) ρίχνει IOException { FileSplit FileSplit = ( FileSplit ) reporter.getInputSplit ( ) ? String fileName = fileSplit.getPath ( ) getName ( ) ? location.set ( fileName ) ?

String γραμμή - val.toString ( ) ? . StringTokenizer itr = νέα StringTokenizer ( line. toLowerCase ( ) ) ? ενώ ( itr.hasMoreTokens ( ) ) { word.set ( itr.nextToken ( ) ) ? output.collect (word , τοποθεσία ) ? } } } 2

Πληκτρολογήστε την ακόλουθη κωδικό για τη λειτουργία μειώσει :

δημόσια στατική τάξη InvertedIndexerReducer επεκτείνει MapReduceBaseimplements Reducer { public void μειώνουν (πλήκτρο κειμένου , οι τιμές Iterator , OutputCollector εξόδου , Reporter δημοσιογράφος ) ρίχνει IOException { boolean πρώτο = true ? StringBuilder toReturn = νέα StringBuilder ( ) ? ενώ ( values.hasNext ( ) ) { αν ( πρώτο ) toReturn.append ( " , ")? ! πρώτα = false ? toReturn . προσάρτησης ( . values.next ( ) toString ( ) ) ? } output.collect ( κλειδί , νέα κειμένου ( toReturn.toString ( ) ) ) ? } }
εικόνων 3

Πληκτρολογήστε τον ακόλουθο κώδικα για να ολοκληρωθεί η ανεστραμμένη δείκτη :

δημόσια στατική άκυρη κύρια ( String [ ] args ) ρίχνει IOException {if ( args.length <2 ) { System.outprintln ( "Χρήση: InvertedIndex " ) ? System.exit ( 1 ) ? } JobConf conf = νέα JobConf ( InvertedIndex.class ) ? conf.setJobName ( " InvertedIndex ")?

conf.setOutputKeyClass ( Text.class ) ? conf.setOutputValueClass ( Text.class ) ?

conf.setMapperClass ( InvertedIndexerMapper.class ) ? conf.setReducerClass ( InvertedIndexerReducer.class ) ?

FileInputFormat.setInputPaths ( conf , νέα Path ( args [ 0 ] ) ) ? FileOutputFormat.setOutputPath ( conf , νέα Path ( args [ 1 ] ) ) ? try { JobClient.runJob ( conf ) ? } αλιευμάτων ( Εξαίρεση ε ) { e.pringStackTrace ( ) ? } }


εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα