2016-07-15 12 views
1

Ich muss Daten auf HBase abfragen. Meine Abfragen sehen so aus:Warum MapReduce vs HBase Shell-Filter verwenden

  • Alle Bücher von "authorD" anzeigen.
  • Wie viele Bücher des Autors "authorA" sind in der Datenbank?

Soweit ich weiß, können Sie dies mit MapReduce oder HBase Shell-Filter tun. Bitte korrigieren Sie mich, wenn ich falsch liege.

Meine Frage ist: Warum sollte ich MapReduce (Programmierung benötigt), wenn ich das gleiche auf der HBase-Shell (keine Programmierung benötigt) mit seinen Filtern tun?

Vielen Dank für Ihre Antworten. Einen schönen Tag noch.

+0

Bitte lesen Sie meine Antwort zu verstehen, die Notwendigkeit der Batchclient –

+0

pls fühlen sich frei als k Fragen, wenn Sie haben ... –

+0

wenn Sie mit der Antwort sind pls flag-up "accept-as-owner" .Thanks –

Antwort

0

Werkzeuge werden verwendet, um Probleme zu lösen.

Wenn Sie gut in HBase Shell sind und es ist schneller, bequem, um die Daten zu erhalten, ist HBase Shell geeignet. Oder Sie sollten MapReduce

0

verwenden, es hängt wirklich von Ihrer Anwendung und Ihrer Designspezifikation ab. Ich würde mehr Informationen benötigen, aber wenn Sie Ihr Beispiel betrachten, scheint Hbase eine gute Wahl gegenüber MapReduce zu sein, außer Sie haben massive Daten und benötigen Stapelverarbeitung. Sie können HBAS Shell innerhalb Ihrer Anwendung aufrufen, aber der bevorzugte Weg ist über HBase Java Client (vorausgesetzt, Sie verwenden Java). Es ist extrem einfach und sehr leistungsfähig.

2

Es gibt 3 Möglichkeiten, die Ergebnisse von Ihrem Hbase zu erhalten.

1) Shell: Dies ist für einfache sichere Datenanalyse mit kleinen Datenmengen. Dies ist für kleine Datenmengen und ist für die Entwickleranalyse. Wenn Sie Ihren RowKey wissen direkt können Sie die Daten erhalten schnell

2) Hbase nicht Batch-Clients: Zum Beispiel Java-Client Hbase verbinden Filter anwenden und Ergebnisse erzielen Dies gilt auch für kleine Datenmenge ist.

Warum mapreduce Hbase API

Was Ihre Daten passiert, wenn sehr groß ist, und Sie müssen ... in diesem Fall verarbeiten, entweder Ihre hbase Shell hängen wird und es wird un responsiven oder kontinuierlicher Datenfluss wird dort die Scrollen wird .. Sie können kippen, das sehen und zu analysieren ..

3) Mapreduce (Batch Client): Zur Verarbeitung großer Datenmengen. Sie können das gleiche Filter- und Scan-Objekt verwenden, das im Java Hbase-Client-Programm verwendet wurde, um die Ergebnisse zu erhalten.

Vorteile/Grund zu verwenden MapReduce mit Hbase:

  • Batch/parllel Verarbeitung

  • Mindestens werden die Ergebnisse als Teil-Dateien in HDFS gespeichert werden (wenn Sie hdfs erwähnen als Senke)

  • Sie können Ergebnisse von ex: Staging-Tabelle zu einer anderen Übersichtstabelleaggregieren 0 wie ein ETL-Rohrleitung ...

Eine klassische Beispiele der obigen Erläuterung ist die Anzahl der Reihen zu zählen ...

Man denke nur, warum hbase Team gegeben hat mapreduce Job Bereitstellung von Zählzeilen sogar die gleiche kann mit Hbase Shell erreicht werden ...

Mapreduce Way:

$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter

Usage: RowCounter [options] 
    <tablename> [   
     --starttime=[start] 
     --endtime=[end] 
     [--range=[startKey],[endKey]] 
     [<column1> <column2>...] 
    ] 

Hbase Shell Way: Durch hbase Shell als auch Sie diese

durch tun können
$ count 'hbase table' 

Ich hoffe, Jetzt erhalten Sie eine Antwort :-)

+0

wenn Sie in Ordnung mit der Antwort sind pls flag-up "akzeptieren-als-Besitzer". Danke –

Verwandte Themen