2016-06-04 10 views
5

Ich bin etwas neu bei Apache Hadoop. Ich habe this und this Fragen zu Hadoop, HBase, Pig, Hive und HDFS gesehen. Beide beschreiben Vergleiche zwischen den oben genannten Technologien.Beziehung zwischen HDFS, HBase, Schwein, Bienenstock und Azkaban?

Aber ich habe gesehen, dass in der Regel eine Hadoop-Umgebung alle diese Komponenten enthält (HDFS, HBase, Pig, Hive, Askaban).

Kann jemand die Beziehung dieser Komponenten/Technologien mit ihren Verantwortlichkeiten innerhalb einer Hadoop-Umgebung in einem architektonischen Arbeitsablauf erklären? vorzugsweise mit einem Beispiel?

Antwort

6

Allgemeine Übersicht:

HDFS ist Distributed File System des Hadoop. Intuitiv kann man sich das als ein Dateisystem vorstellen, das viele Server umfasst.

HBASE ist ein spaltenorientierter Datenspeicher. Es ist dem Google Big Table nachempfunden, aber wenn Sie das nicht wussten, dann sollten Sie es als eine nicht-relationale Datenbank betrachten, die Echtzeit-Lese-/Schreibzugriff auf Daten bietet. Es ist in Hadoop integriert.

Pig und Hive sind Möglichkeiten zum Abfragen von Daten im Hadoop-Ökosystem. Der Hauptunterschied besteht darin, dass Hive eher SQL als Pig ist. Pig verwendet das, was Pig Latin genannt wird.

Askaban ist ein Gefängnis, ich meine Batch Workflow-Job-Scheduler. Im Grunde ist es Oozie insofern ähnlich, als Sie Map/Reduce, Pig, Hive, Bash usw. als einen einzigen Job ausführen können.

Auf der höchstmöglichen Ebene können Sie sich HDFS als Ihr Dateisystem mit HBASE als Datenspeicher vorstellen. Pig und Hive würden Sie von Ihrem Datenspeicher abfragen. Dann wäre Askaban Ihre Art, Jobs zu planen.

Stretched Beispiel:

Wenn Sie mit Linux ext3 oder ext4 für ein Dateisystem, MySQL/PostgreSQL/MariaDB/etc für eine Datenbank vertraut sind, SQL auf die Daten zuzugreifen, und Cron-Jobs zu planen. (Sie können ext3/ext4 für NTFS und Cron für Taskplaner unter Windows austauschen)

HDFS nimmt den Platz von ext3 oder ext4 (und verteilt), HBASE übernimmt die Datenbankrolle (und ist nicht relational!), Pig/Hive ist eine Möglichkeit, auf die Daten zuzugreifen, und Azkaban ist eine Möglichkeit, Jobs zu planen.

HINWEIS: Dies ist kein Vergleich zwischen Äpfeln und Äpfeln. Es soll lediglich zeigen, dass die Hadoop-Komponenten eine Abstraktion sind, die Ihnen einen Arbeitsablauf bieten soll, mit dem Sie wahrscheinlich bereits vertraut sind.

Ich ermutige Sie sehr, in die Komponenten weiter zu schauen, wie Sie eine gute Menge Spaß haben werden. Hadoop hat so viele austauschbare Komponenten (Garn, Kafka, Oozie, Ambari, ZooKeeper, Sqoop, Spark usw.), dass Sie sich diese Frage oft stellen werden.

EDIT: Die Links, die Sie posteten, gingen mehr ins Detail über HBase und Hive/Pig, also versuchte ich, ein intuitives Bild davon zu geben, wie sie alle zusammenpassen.

+0

Sind diese korrekt, wie ich verstanden habe? 1) Hive/Pig beide sind für den gleichen Zweck (Datenzugriff obwohl anders im Einsatz), wenn Sie mit einem anderen gehen ist optional. 2) HBase ist auf HDFS aufgebaut. –

+0

Ja, du kannst es so sehen. An der Oberfläche bieten Hive und Pig beide die Möglichkeit, dasselbe zu tun. Sie wurden ursprünglich von 2 verschiedenen Gruppen entwickelt, so dass die Philosophie und der Anwendungsfall für beide etwas unterschiedlich sind. Da Hive mehr wie SQL (HiveQL) ist, sollte es gut mit strukturierten Daten funktionieren. Pig ist ziemlich gut für semi-strukturierte ich mir vorstellen könnte. Ich werde bemerken, dass ich kein Experte bin, also ist dies nur eine Meinung von dem, was ich gelernt habe. –

+0

Wie für HBase, habe ich nicht wirklich Erfahrung damit, also kann ich nicht sagen, sicher, aber ich fand diesen Link, der helfen könnte: http://thenewstack.io/a-look-at-hbase/ –

1

Hadoop-Umgebung enthält alle diese Komponenten (HDFS, HBase, Schwein, Hive, Askaban). Kurze Beschreibung von ihnen kann sein: -

HDFS-Speicherung in Hadoop-Framework.

HBase - Es ist eine spaltenartige Datenbank. wo Sie Daten in Form von Spalte für einen schnelleren Zugriff speichern. Ja, es verwendet hdfs als Speicher.

Pig - Datenfluss Sprache, seine Community hat eingebaute Funktionen zum Laden und Verarbeiten von semi-strukturierten Daten wie JSON und XML zusammen mit strukturierten Daten zur Verfügung gestellt.

Hive - Abfrage Sprache zum Ausführen von Abfragen über Tabellen, Tabellenmontage ist hier erforderlich, um mit HDFS-Daten zu spielen.

Askaban - Wenn Sie eine Pipeline von Hadoop-Jobs haben, können Sie sie so planen, dass sie zu bestimmten Zeitpunkten und nach oder vor einer Abhängigkeit ausgeführt werden.

+0

Wenn ich so frage, können Sie bitte den Workflow der oben genannten Komponenten angeben? Ich werde eine Reihe von Daten-Retrieval-API mit Java entwickeln. Jede API ruft den Hbase auf, um Daten zu erhalten, die einen Zeilenschlüssel geben. Können Sie bitte den Workflow/die Verbindung der oben genannten Komponenten angeben, wenn Sie "den HBase mit einem Zeilenschlüssel aufrufen" und "den Datensatz erhalten"? –