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
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