2013-07-03 20 views
6

Ok..Ich habe versucht, das Internet und diese Website für eine Antwort auf diese Frage zu suchen, die wie eine sehr grundlegende Frage scheint. Ich bin komplett neu zu Big Data Processing.Beziehung zwischen Hadoop und Datenbanken

Ich möchte die Beziehung zwischen HDFS und Datenbanken kennen. Ist es immer notwendig, dass die Daten in einem bestimmten NoSQL-Format verwendet werden, um HDFS zu verwenden? Gibt es eine bestimmte Datenbank, die immer beigefügt wird, wenn HDFS verwendet wird? Ich weiß, dass Cloudera Hadoop-Lösungen anbietet und sie HBase verwenden.

Kann ich eine relationale Datenbank als native Datenbank für Hadoop verwenden?

Antwort

0

Der Vorteil von Hadoop ist seine Fähigkeit, Daten mit Replikation zu speichern, so dass Sie Hadoop nicht "abarbeiten" können, sagen wir, SQL Server, noch würde es viel Sinn machen. Es gibt HBase-, Hive- und Pig-Umgebungen (und andere), die für die Arbeit mit Hadoop eingerichtet werden können, und sie sehen aus wie normale SQL-Sprachen. Schauen Sie sich Hortonworks' Sandbox an, wenn Sie in 15 Minuten von 0 bis Big Data spielen möchten. Hoffe das hilft.

+0

Es hilft. Vielen Dank. Ich habe den Punkt nicht berücksichtigt, an dem Hadoop Daten repliziert - also ja, das macht eine SQL-Datenbank als native Datenbank inkompatibel. – crossvalidator

1

Was wollen Sie wirklich erreichen, das ist nicht klar aus Ihrer Frage.

Zwischen HDFS und Datenbank besteht nur eine indirekte Beziehung. HDFS ist ein Dateisystem, keine Datenbank. Hadoop ist eine Kombination aus dem Parallel Processing Framework (MapReduce) und dem Dateisystem HDFS. Das parallele Verarbeitungsframework erfasst Datenstücke aus dem HDFS-Dateisystem unter Verwendung von etwas namens und InputFormat. Einige Datenbanken wie: Oracle NoSQL Database (ONDB), Cassandra, Riak, andere haben die Fähigkeit, ein InputFormat zurückzugeben, das ihre Daten enthält, so dass sie als Quelle für die MapReduce-Verarbeitung dienen können, genau wie Daten von HDFS.

Also noch einmal, was möchten Sie tun?

Hadoop und HDFS sind im Allgemeinen nützlich, wenn Sie eine große Datenmenge haben, die noch nicht aggregiert und/oder in ein Modell strukturiert wurde, das für die Verarbeitung auf höherer Ebene benötigt wird. Gelegentlich (obwohl zwiespältig oft gezwungener als wirklich notwendig) kann Hadoop verwendet werden, um eine Verarbeitung auf höherer Ebene durchzuführen, die normalerweise in einer anderen Verarbeitungs-/Speichertechnologie durchgeführt wird, die ein anständiges Modell nutzt. Denken Sie an Google Instant, die Erstellung des Suchindex, die auf MapReduce verwendet wurde, dann haben sie ein Modell entwickelt und verwenden jetzt einen besseren Ansatz. Google MapReduce konnte nicht alleine auf Google MapReduce ausgeführt werden.

+0

Ich möchte nur wissen, welche Arten von Datenbanken direkt mit Hadoop verwendet werden können, d. H. Ohne Verbindungsprogramme, die das Datenformat ändern könnten. Grundsätzlich habe ich nicht verstanden, warum SQOOP existiert. Warum können wir nicht direkt SQL-Daten in Hadoop verwenden? Wie Doktor Dan betonte, wäre die Replikation von Daten mit SQL nicht möglich. Ich frage mich, ob es noch andere Sorgen gibt? – crossvalidator

+0

@crossvalidator: Bitte beachten Sie die bearbeitete Antwort als Antwort auf diesen Kommentar. Es war nicht möglich, das hier zu schreiben. – Tariq

12
I want to know the relationship between HDFS and databases. 

Es gibt keine relation als solche zwischen dem 2. Wenn Sie noch eine gewisse Ähnlichkeit finden wollen, das einzige, was üblich ist zwischen der 2 Bestimmung store Daten vorhanden sind. Dies ist jedoch analog zu jeder FS- und DB-Kombination. MySQL und ext3 zum Beispiel. Sie sagen, dass Sie Daten in MySQL speichern, aber letztendlich werden Ihre Daten auf Ihrem FS gespeichert. Normalerweise verwenden die Benutzer NoSQL-Datenbanken wie HBase oberhalb ihres Hadoop-Clusters, um die Parallelität und das verteilte Verhalten von HDFS zu nutzen.

Is it always necessary that to use HDFS, the data be in a some NoSQL format? 

Es gibt eigentlich nichts wie NoSQL format. Sie können HDFS verwenden für jede Art von Daten, Text, Binär-, xml etc etc.

Is there a specific database that always comes attached when using HDFS? 

Nr Das einzige, was mit HDFS gekoppelt kommt MapReduce framework ist. Sie können natürlich eine DB mit HDFS arbeiten lassen. Leute benutzen oft NoSQL DBs über HDFS. Es gibt verschiedene Möglichkeiten wie Cassandra, HBase usw. Es liegt ganz bei Ihnen zu entscheiden, welche Sie verwenden möchten.

Can I use a relational database as the native database for Hadoop? 

Es gibt keine OOTB-Funktion, die dies ermöglicht.Außerdem macht es wenig Sinn, RDBMS mit Hadoop zu verwenden. Hadoop wurde für die Zeiten entwickelt, in denen RDBMS nicht die geeignete Option ist, wie die Handhabung von PBs von Daten, Umgang mit unstrukturierten Daten usw. Allerdings darf Hadoop nicht als Ersatz für die RDBMs betrachtet werden. Beide haben ganz andere Ziele.

EDIT:

Normalerweise Leute verwenden NoSQL DBs (wie HBase, Cassandra) mit Hadoop. Die Verwendung dieser DBs mit hadoop ist lediglich eine Frage der Konfiguration. Sie benötigen dazu kein Verbindungsprogramm. Abgesehen von dem Punkt, den @Doctor Dan gemacht hat, gibt es nur wenige andere Gründe, warum NoSQL-DBs anstelle von SQL-DBs verwendet werden. Eine Sache ist size. Diese NoSQL DBs bieten eine große horizontale Skalierbarkeit, die es Ihnen ermöglicht, PBs von Daten einfach zu speichern. Sie können traditionelle Systeme vertikal skalieren. Ein weiterer Grund ist die complexity von Daten. Die Orte, an denen diese DBs verwendet werden, behandeln meist sehr unstrukturierte Daten, die mit traditionellen Systemen nicht einfach zu handhaben sind. Zum Beispiel Sensordaten, Logdaten usw.

Grundsätzlich habe ich nicht verstanden, warum SQOOP existiert. Warum können wir nicht direkt SQL-Daten in Hadoop verwenden?

Obwohl Hadoop sehr gut mit Ihren BigData-Anforderungen umgehen kann, ist es nicht die Lösung für all Ihre Bedürfnisse. Es ist nicht für Echtzeitanforderungen geeignet. Angenommen, Sie sind eine Online-Transaktionsgesellschaft mit einem sehr sehr großen Datenbestand. Sie stellen fest, dass Sie diese Daten sehr einfach mit Hadoop verarbeiten können. Das Problem ist jedoch, dass Sie die Echtzeitanforderungen Ihrer Kunden nicht mit Hadoop erfüllen können. Hier kommt SQOOP ins Spiel. Es ist ein Import/Export-Tool, mit dem Sie Daten zwischen einer SQL DB und Hadoop verschieben können. Sie können Ihre BigData in Ihren Hadoop-Cluster verschieben, dort verarbeiten und dann mithilfe von SQOOP die Ergebnisse zurück in Ihre SQL-Datenbank übertragen, um die Echtzeitanforderungen Ihrer Kunden zu erfüllen.

HTH

+1

Sehr nette Erklärung ... weiß nicht, warum der Benutzer dies nicht als Antwort akzeptiert..irgendwo +1 :) – Trialcoder

Verwandte Themen