2016-09-20 1 views
1

Ich bin neu in hadoop und mapreduce partitioner.Ich möchte meinen eigenen Partitionierer schreiben und ich muss eine Datei im Partitionierer lesen. Ich habe viele Male gesucht und ich bekomme, dass ich verteilten Cache verwenden sollte. Das ist meine Frage, wie kann ich verteilten Cache in meinem Hadoop-Partitionierer verwenden? Was soll ich in meinem Partitionierer schreiben?Wie verteilte Cache in Partitionierer Hadoop verwenden?

public static class CaderPartitioner extends Partitioner<Text,IntWritable> { 

    @Override 
    public int getPartition(Text key, IntWritable value, int numReduceTasks) { 
     return 0; 
    } 
} 

Dank

Antwort

1

Der einfachste Weg, dies zu trainieren ist am Beispiel aussehen Partitionierer mit hadoop enthalten. In diesem Fall ist der zu betrachtende Code TotalOrderPartitioner, der eine vorgenerierte Datei einliest, um die Direkttasten zu unterstützen.

Sie können den Quellcode here finden, und hier ist gist zeigt, wie man es benutzt.

Zunächst müssen Sie das Partitionierungs sagen, wo die Datei in Ihrem mapreduce Jobs Treiber (auf HDFS) zu finden: In der

// Define partition file path. 
Path partitionPath = new Path(outputDir + "-part.lst"); 
// Use Total Order Partitioner. 
job.setPartitionerClass(TotalOrderPartitioner.class); 
// Generate partition file from map-only job's output. 
TotalOrderPartitioner.setPartitionFile(job.getConfiguration(), partitionPath); 

TotalOrderPartitioner Sie werden sehen, dass es implements Configurable, die es den Zugriff auf das gibt Konfiguration, so dass es den Pfad zu der Datei auf HDFS erhalten kann. Die Datei wird in der public void setConf(Configuration conf)-Methode gelesen, die beim Erstellen des Partitioniererobjekts aufgerufen wird. An diesem Punkt können Sie die Datei lesen und die von Ihnen gewünschte Konfiguration vornehmen.

Ich würde denken, dass Sie eine Menge Code von diesem Partitionierer wiederverwenden können.

+0

Vielen Dank für Ihre Antwort. Es tut mir leid, aber ich bin wirklich neu in diesem Bereich und ich verstehe nicht, wie dieser Partitionierer Datei lesen. Kannst du mir ein einfacheres Beispiel geben? Danke – saeednasehi

+0

ich didi es. Vielen Dank ! Vielen Dank :)) – saeednasehi

Verwandte Themen