Kann ich Ausgaben in mehrere Tabellen in HBase von meinem Reduzierer schreiben? Ich habe verschiedene Blog-Posts durchsucht, aber ich konnte keinen Weg finden, selbst mit MultiTableOutputFormat
.Ausgabe an mehrere Tabellen von REDUCER schreiben
ich dies genannt: Write to multiple tables in HBASE
aber nicht in der Lage, die Signatur-API für context.write
Anruf herauszufinden.
Reducer Code:
public class MyReducer extends TableReducer<Text, Result, Put> {
private static final Logger logger = Logger.getLogger(MyReducer.class);
@SuppressWarnings("deprecation")
@Override
protected void reduce(Text key, Iterable<Result> data, Context context) throws IOException, InterruptedException {
logger.info("Working on ---> " + key.toString());
for (Result res : data) {
Put put = new Put(res.getRow());
KeyValue[] raw = res.raw();
for (KeyValue kv : raw) {
put.add(kv);
}
context.write(obj, put);
**// I dont know how to give table name here.**
}
}
}
Ja, das ist richtig (+ 1) Wir müssen den Tisch als Schlüssel durch den oben genannten Weg führen. Wenn Sie über Mapper schreiben, dann ist unten der Weg beschrieben. // rowKey ist der von lineBytes generierte hbase rowKey \t \t Put put = neu Put (rowKey); \t \t // Erstellen Sie Ihr KeyValue-Objekt \t \t put.add (kv); \t \t context.write ("Aktionen", setzen); // schreibe in die Aktionstabelle –