Wann sollten Hadoop, HBase, Hive und Pig verwendet werden?


185

Was sind die Vorteile von entweder mit Hadoop oder HBase oder Hive ?

Nach meinem Verständnis vermeidet HBase die Verwendung von Map-Reduce und verfügt über einen spaltenorientierten Speicher über HDFS. Hive ist eine SQL-ähnliche Oberfläche für Hadoop und HBase .

Ich würde auch gerne wissen, wie Hive mit Pig verglichen wird .


Hadoop : Hadoop Distributed File System + Rechenverarbeitungsmodell MapReduce. HBase : Schlüsselwertspeicher, gut zum Lesen und Schreiben in nahezu Echtzeit. Hive : Wird für die Datenextraktion aus dem HDFS mithilfe einer SQL-ähnlichen Syntax verwendet. Pig : ist eine Datenflusssprache zum Erstellen von ETL.
dbustosp

Antworten:


348

MapReduce ist nur ein Computer-Framework . HBase hat nichts damit zu tun. Sie können jedoch Daten effizient in / aus HBase ablegen oder abrufen, indem Sie MapReduce-Jobs schreiben. Alternativ können Sie sequentielle Programme mit anderen HBase-APIs wie Java schreiben, um die Daten abzulegen oder abzurufen. Aber wir verwenden Hadoop, HBase usw., um mit riesigen Datenmengen umzugehen, was wenig Sinn macht. Die Verwendung normaler sequentieller Programme wäre äußerst ineffizient, wenn Ihre Daten zu groß sind.

Um auf den ersten Teil Ihrer Frage zurückzukommen: Hadoop besteht im Wesentlichen aus zwei Dingen: einem verteilten Dateisystem (HDFS) + einem Berechnungs- oder Verarbeitungsframework (MapReduce) . Wie alle anderen FS bietet auch HDFS Speicherplatz, jedoch fehlertolerant mit hohem Durchsatz und geringerem Risiko für Datenverlust (aufgrund der Replikation). Als FS fehlt HDFS jedoch der zufällige Lese- und Schreibzugriff . Hier kommt HBase ins Spiel. Es handelt sich um einen verteilten, skalierbaren Big-Data-Speicher , der dem BigTable von Google nachempfunden ist. Es speichert Daten als Schlüssel / Wert-Paare.

Kommen zu Hive. Es bietet uns Data Warehousing-Funktionen auf einem vorhandenen Hadoop-Cluster. Darüber hinaus bietet es eine SQL-ähnliche Oberfläche, die Ihnen die Arbeit erleichtert, falls Sie aus einem SQL-Hintergrund stammen. Sie können Tabellen in Hive erstellen und dort Daten speichern. Darüber hinaus können Sie Ihre vorhandenen HBase-Tabellen sogar Hive zuordnen und bearbeiten.

Während Pig im Grunde eine Datenflusssprache ist , die es uns ermöglicht, enorme Datenmengen sehr einfach und schnell zu verarbeiten. Pig besteht im Wesentlichen aus 2 Teilen: dem Pig Interpreter und der Sprache PigLatin . Sie schreiben ein Pig-Skript in PigLatin und verarbeiten es mit dem Pig-Interpreter. Schwein macht unser Leben viel einfacher, sonst ist das Schreiben von MapReduce immer nicht einfach. In einigen Fällen kann es sogar zu einem Schmerz werden.

Ich hatte vor einiger Zeit einen Artikel über einen kurzen Vergleich verschiedener Werkzeuge des Hadoop-Ökosystems geschrieben. Es handelt sich nicht um einen eingehenden Vergleich, sondern um eine kurze Einführung in jedes dieser Tools, die Ihnen den Einstieg erleichtern kann. (Nur um meine Antwort zu ergänzen. Keine Eigenwerbung beabsichtigt)

Sowohl Hive- als auch Pig-Abfragen werden unter der Haube in MapReduce-Jobs konvertiert.

HTH


Sie vergessen, über das yarnHadoop-Ökosystem zu sprechen :(.
Kenry Sanchez

53

Ich habe kürzlich in meiner Firma eine Hive Data-Plattform implementiert und kann in der ersten Person mit ihr sprechen, da ich ein Ein-Mann-Team war.

Zielsetzung

  1. Damit die täglichen Webprotokolldateien von mehr als 350 Servern täglich über eine SQL- ähnliche Sprache abgefragt werden können
  2. Ersetzen der durch MySQL generierten täglichen Aggregationsdaten durch Hive
  3. Erstellen Sie benutzerdefinierte Berichte über Abfragen in Hive

Architekturoptionen

Ich habe die folgenden Optionen bewertet:

  1. Hive + HDFS
  2. Hive + HBase - Abfragen waren zu langsam, daher habe ich diese Option deaktiviert

Design

  1. Tägliche Protokolldateien wurden zu HDFS transportiert
  2. MR-Jobs analysierten diese Protokolldateien und Ausgabedateien in HDFS
  3. Erstellen Sie Hive-Tabellen mit Partitionen und Speicherorten, die auf HDFS- Speicherorte verweisen
  4. Erstellen Sie Hive-Abfrageskripte (nennen Sie es HQL, wenn Sie sich von SQL unterscheiden möchten ), die wiederum MR-Jobs im Hintergrund ausführten und Aggregationsdaten generierten
  5. Fügen Sie all diese Schritte in einen Oozie- Workflow ein - geplant mit Daily Oozie Coordinator

Zusammenfassung

HBase ist wie eine Karte. Wenn Sie den Schlüssel kennen, können Sie den Wert sofort erhalten. Wenn Sie jedoch wissen möchten, wie viele Ganzzahlschlüssel in Hbase zwischen 1000000 und 2000000 liegen, ist dies nicht nur für Hbase geeignet .

Wenn Sie Daten haben, die aggregiert, aufgerollt und zeilenübergreifend analysiert werden müssen, ziehen Sie Hive in Betracht .

Hoffentlich hilft das.

Hive rockt tatsächlich ... Ich weiß, ich lebe es jetzt seit 12 Monaten ... HBase auch ...


1
HBase ist eine NonSQL-Datenbank, die Daten in HDFS speichert. Es wird verwendet, wenn Sie zufälligen Lese- / Schreibzugriff in Echtzeit auf Ihre Big Data benötigen.
Root Loop

28

Hadoop ist ein Framework, das die verteilte Verarbeitung großer Datenmengen über Computercluster mithilfe einfacher Programmiermodelle ermöglicht.

Es gibt vier Hauptmodule in Hadoop.

  1. Hadoop Common : Die allgemeinen Dienstprogramme, die die anderen Hadoop-Module unterstützen.

  2. Hadoop Distributed File System ( HDFS ™ ): Ein verteiltes Dateisystem, das Zugriff auf Anwendungsdaten mit hohem Durchsatz bietet.

  3. Hadoop YARN : Ein Framework für die Jobplanung und die Verwaltung von Clusterressourcen .

  4. Hadoop MapReduce : Ein YARN-basiertes System zur parallelen Verarbeitung großer Datenmengen.

Bevor wir fortfahren, stellen wir fest, dass wir drei verschiedene Arten von Daten haben.

  • Strukturiert : Strukturierte Daten haben ein starkes Schema und das Schema wird während des Schreib- und Lesevorgangs überprüft. zB Daten in RDBMS-Systemen wie Oracle, MySQL Server usw.

  • Unstrukturiert : Daten haben keine Struktur und können jede Form haben - Webserver-Protokolle, E-Mail, Bilder usw.

  • Halbstrukturiert : Daten sind nicht streng strukturiert, haben aber eine gewisse Struktur. zB XML-Dateien.

Je nach Art der zu verarbeitenden Daten müssen wir die richtige Technologie auswählen.

Einige weitere Projekte, die Teil von Hadoop sind:

  • HBase ™ : Eine skalierbare, verteilte Datenbank, die die strukturierte Datenspeicherung für große Tabellen unterstützt.

  • Hive ™: Eine Data Warehouse-Infrastruktur, die Datenzusammenfassung und Ad-hoc-Abfrage ermöglicht.

  • Pig ™ : Eine allgemeine Datenflusssprache und ein Ausführungsframework für die parallele Berechnung.

Hive Vs PIG Vergleich finden Sie in diesem Artikel und meinem anderen Beitrag in dieser SE- Frage .

HBASE ersetzt Map Reduce nicht. HBase ist eine skalierbare verteilte Datenbank und Map Reduce ist ein Programmiermodell für die verteilte Verarbeitung von Daten. Map Reduce kann bei der Verarbeitung auf Daten in HBASE einwirken.

Sie können HIVE / HBASE für strukturierte / halbstrukturierte Daten verwenden und mit Hadoop Map Reduce verarbeiten

Mit SQOOP können Sie strukturierte Daten aus der herkömmlichen RDBMS-Datenbank Oracle, SQL Server usw. importieren und mit Hadoop Map Reduce verarbeiten

Mit FLUME können Sie nicht strukturierte Daten verarbeiten und mit Hadoop Map Reduce verarbeiten

Schauen Sie sich an: Hadoop Use Cases .

Hive sollte zur analytischen Abfrage von Daten verwendet werden, die über einen bestimmten Zeitraum gesammelt wurden. zB Trends berechnen, Website-Protokolle zusammenfassen, aber es kann nicht für Echtzeit-Abfragen verwendet werden.

HBase eignet sich für die Echtzeitabfrage von Big Data. Facebook verwendet es für Messaging und Echtzeitanalysen.

PIG kann verwendet werden, um Datenflüsse zu erstellen, geplante Jobs auszuführen, große Datenmengen zu verarbeiten, zu aggregieren / zusammenzufassen und in Beziehungsdatenbanksystemen zu speichern. Gut für Ad-hoc-Analysen.

Hive kann für die Ad-hoc-Datenanalyse verwendet werden, unterstützt jedoch im Gegensatz zu PIG nicht alle unstrukturierten Datenformate.


Facebook verwendet Open Source HBase nicht mehr für Echtzeit-Messagingsysteme. Sie haben es durch ihre interne [Myrocks-Datenbank] ersetzt. ( engineering.fb.com/core-data/… )
PPK

22

Bedenken Sie, dass Sie mit RDBMS arbeiten und auswählen müssen, was verwendet werden soll - vollständige Tabellenscans oder Indexzugriff -, aber nur eine davon.
Wenn Sie den vollständigen Tabellenscan auswählen, verwenden Sie Hive. Wenn Indexzugriff - HBase.


Tatsächlich können Sie Hive auf HBase erstellen, sodass Sie HQL verwenden können, um hbase vollständig zu scannen, während Sie indizierte Abfragen direkt auf hbase ausführen können. Ich bezweifle jedoch, dass dies bei vollem Scan zu einer langsameren Leistung führt.
FrostNovaZzz

HBase ist ein schreiborientiertes System, das bei Scans nicht optimal ist, obwohl die Daten sortiert gespeichert werden. Während das Scannen einiger Bereiche eine gute Wahl sein kann, sind vollständige Scans viel langsamer als direkt von HDFS
David Gruzman

5

Für einen Vergleich zwischen Hadoop und Cassandra / HBase lesen Sie diesen Beitrag .

Grundsätzlich ermöglicht HBase ein sehr schnelles Lesen und Schreiben mit Skalierbarkeit. Wie schnell und skalierbar? Facebook verwendet es, um seine Benutzerstatus, Fotos, Chat-Nachrichten usw. zu verwalten. HBase ist so schnell, dass Facebook manchmal Stapel entwickelt hat, um HBase als Datenspeicher für Hive selbst zu verwenden.

Where As Hive ähnelt eher einer Data Warehousing-Lösung. Sie können eine SQL-ähnliche Syntax verwenden, um Hive-Inhalte abzufragen, was zu einem Map Reduce-Job führt. Nicht ideal für schnelle Transaktionssysteme.


5

Ich habe an der Verarbeitung der Lambda-Architektur in Echtzeit und beim Laden von Stapeln gearbeitet. Eine Echtzeitverarbeitung ist erforderlich, wenn im Falle eines Feueralarms, der per Sensor gesendet wird, oder bei Betrugsfällen bei Bankgeschäften schnelle Entscheidungen getroffen werden müssen. Die Stapelverarbeitung ist erforderlich, um Daten zusammenzufassen, die in BI-Systeme eingespeist werden können.

Wir haben Hadoop- Ökosystemtechnologien für die oben genannten Anwendungen verwendet.

Echtzeitverarbeitung

Apache Storm: Stream-Datenverarbeitung, Regelanwendung

HBase: Datenspeicher für die Bereitstellung des Echtzeit-Dashboards

Stapelverarbeitung Hadoop: Knirschen großer Datenmengen. 360-Grad-Übersicht oder Hinzufügen von Kontext zu Ereignissen. Schnittstellen oder Frameworks wie Pig, MR, Spark, Hive und Shark helfen beim Rechnen. Diese Ebene benötigt einen Scheduler, für den Oozie eine gute Option ist.

Ebene für die Ereignisbehandlung

Apache Kafka war die erste Schicht, die Hochgeschwindigkeitsereignisse vom Sensor verbrauchte. Kafka dient sowohl dem Echtzeit- als auch dem Batch-Analysedatenfluss über Linkedin-Konnektoren.


5

Tiefe verstehen

Hadoop

Hadoopist ein Open Source Projekt der ApacheStiftung. Es handelt sich um ein Framework Java, das ursprünglich von Doug Cutting im Jahr 2005 entwickelt wurde. Es wurde erstellt, um die Verteilung für Nutchdie Textsuchmaschine zu unterstützen . Hadoopverwendet GoogleMap Reduce Technologien von und Google File System als Grundlage.

Eigenschaften von Hadoop

  1. Es ist für die Verarbeitung großer Mengen strukturierter, halbstrukturierter und unstrukturierter Daten mithilfe von Standardhardware optimiert.
  2. Es hat nichts Architektur geteilt.
  3. Es repliziert seine Daten auf mehrere Computer, sodass die Daten bei einem Ausfall weiterhin von einem anderen Computer verarbeitet werden können, auf dem das Replikat gespeichert ist.
  4. Hadoopist eher für hohen Durchsatz als für niedrige Latenz. Es handelt sich um eine Stapeloperation, die große Datenmengen verarbeitet. Daher ist die Reaktionszeit nicht unmittelbar.
  5. Es ergänzt die Online-Transaktionsverarbeitung und die Online-Analyseverarbeitung. Es ist jedoch kein Ersatz für aRDBMS .
  6. Es ist nicht gut, wenn die Arbeit nicht parallelisiert werden kann oder wenn Abhängigkeiten innerhalb der Daten bestehen.
  7. Es ist nicht gut für die Verarbeitung kleiner Dateien. Es funktioniert am besten mit riesigen Datendateien und Datensätzen.

Versionen von Hadoop

Es stehen zwei Versionen zur HadoopVerfügung:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

Es besteht aus zwei Hauptteilen:

1. Datenspeicher-Framework

Es ist ein universelles Dateisystem namens Hadoop Distributed File System ( HDFS).

HDFS ist schemalos

Es speichert einfach Datendateien und diese Datendateien können in nahezu jedem Format vorliegen.

Die Idee ist, Dateien so nah wie möglich an ihrer ursprünglichen Form zu speichern.

Dies wiederum bietet den Geschäftsbereichen und der Organisation die dringend benötigte Flexibilität und Agilität, ohne sich übermäßig Sorgen darüber zu machen, was sie implementieren können.

2. Datenverarbeitungs-Framework

Dies ist ein einfaches funktionales Programmiermodell, das ursprünglich von Google als populär gemacht wurde MapReduce.

Es verwendet im Wesentlichen zwei Funktionen: MAPund REDUCEzum Verarbeiten von Daten.

Die "Mapper" nehmen eine Reihe von Schlüssel-Wert-Paaren auf und generieren Zwischendaten (eine weitere Liste von Schlüssel-Wert-Paaren).

Die "Reduzierer" wirken dann auf diesen Eingang, um die Ausgangsdaten zu erzeugen.

Die beiden Funktionen arbeiten scheinbar isoliert miteinander, sodass die Verarbeitung hochparallel, fehlertolerant und skalierbar hochverteilt werden kann.

Einschränkungen von Hadoop 1.0

  1. Die erste Einschränkung war das Erfordernis von MapReduceProgrammierkenntnissen.

  2. Es wurde nur die Stapelverarbeitung unterstützt, die zwar für Aufgaben wie Protokollanalyse, große Data Mining-Projekte geeignet, für andere Arten von Projekten jedoch ziemlich ungeeignet ist.

  3. Eine wesentliche Einschränkung bestand darin, dass Hadoop 1.0eine enge rechnerische Verknüpfung bestand MapReduce, was bedeutete, dass die etablierten Datenverwaltungsanbieter zwei Meinungen hatten:

    1. Schreiben Sie entweder ihre Funktionalität neu, MapReducedamit sie in Hadoopoder ausgeführt werden kann

    2. Extrahieren Sie Daten aus HDFSoder verarbeiten Sie sie außerhalb von Hadoop.

Keine der Optionen war realisierbar, da dies zu Prozessineffizienzen führte, die durch das Verschieben von Daten in den HadoopCluster und aus dem Cluster verursacht wurden.

Hadoop 2.0

In Hadoop 2.0,HDFS weiterhin Datenspeicher Rahmen sein.

Jedoch ist ein neuer und separater Rahmen Ressourcenverwaltung genannt Y et A nother R esource N egotiater ( YARN wurde) hinzugefügt.

Jede Anwendung, die sich in parallele Aufgaben aufteilen kann, wird von YARN unterstützt.

YARN koordiniert die Zuweisung von Unteraufgaben der eingereichten Bewerbung und verbessert so die Flexibilität, Skalierbarkeit und Effizienz der Bewerbungen.

Es funktioniert, indem anstelle von Job Tracker ein Anwendungsmaster vorhanden ist , der Anwendungen auf Ressourcen ausführt, die vom neuen Knotenmanager verwaltet werden .

ApplicationMaster kann jede Anwendung ausführen und nicht nur MapReduce.

Dies bedeutet, dass nicht nur die Stapelverarbeitung, sondern auch die Echtzeitverarbeitung unterstützt wird. MapReduceist nicht mehr die einzige Datenverarbeitungsoption.

Vorteile von Hadoop

Es speichert Daten in seinem nativen von. Beim Eingeben von Daten oder Speichern von Daten wird keine Struktur festgelegt. HDFSist Schema weniger. Erst später, wenn die Daten verarbeitet werden müssen, wird die Struktur den Rohdaten auferlegt.

Es ist skalierbar. Hadoopkann sehr große Datenmengen auf Hunderten von kostengünstigen Servern speichern und verteilen, die parallel arbeiten.

Es ist widerstandsfähig gegen Ausfälle. Hadoopist Fehlertoleranz. Die Replikation von Daten wird sorgfältig durchgeführt, dh, wenn Daten an einen Knoten gesendet werden, werden dieselben Daten auch auf andere Knoten im Cluster repliziert, wodurch sichergestellt wird, dass im Falle eines Knotenausfalls immer eine weitere Kopie der Daten zur Verwendung verfügbar ist.

Es ist flexibel. Einer der Hauptvorteile von Hadoopist, dass es mit jeder Art von Daten arbeiten kann: strukturiert, unstrukturiert oder halbstrukturiert. Außerdem ist die Verarbeitung Hadoopaufgrund des Paradigmas "Code in Daten verschieben" extrem schnell .

Hadoop-Ökosystem

Im Folgenden sind die Komponenten des HadoopÖkosystems aufgeführt:

HDFS : HadoopVerteiltes Dateisystem. Es speichert einfach Datendateien so nah wie möglich am Originalformular.

HBase : Es ist die Datenbank von Hadoop und lässt sich gut mit einer vergleichen RDBMS. Es unterstützt die strukturierte Datenspeicherung für große Tabellen.

Hive : Ermöglicht die Analyse großer Datenmengen in einer Sprache ANSI SQL, die dem Standard sehr ähnlich ist. Dies bedeutet, dass jeder, mit dem er vertraut SQList, auf Daten in einem HadoopCluster zugreifen kann .

Schwein : Es ist eine leicht verständliche Datenflusssprache. Es hilft bei der Analyse großer Datenmengen, was durchaus in Ordnung ist Hadoop. PigSkripte werden MapReducevom PigInterpreter automatisch in Jobs konvertiert .

ZooKeeper : Es ist ein Koordinierungsdienst für verteilte Anwendungen.

Oozie : Es ist ein Workflow- schedularSystem zum Verwalten von Apache- HadoopJobs.

Mahout : Es ist eine skalierbare Bibliothek für maschinelles Lernen und Data Mining.

Chukwa : Es ist ein Datenerfassungssystem zur Verwaltung großer verteilter Systeme.

Sqoop : Es wird verwendet, um Massendaten zwischen Hadoopund strukturierten Datenspeichern wie relationalen Datenbanken zu übertragen.

Ambari : Es ist ein webbasiertes Tool zum Bereitstellen, Verwalten und Überwachen von HadoopClustern.

Bienenstock

Hiveist ein Data Warehouse-Infrastruktur-Tool zur Verarbeitung strukturierter Daten Hadoop. Es basiert auf der HadoopZusammenfassung von Big Data und erleichtert das Abfragen und Analysieren.

Bienenstock ist nicht

  1. Eine relationale Datenbank

  2. Ein Design für die Online-Transaktionsverarbeitung ( OLTP).

  3. Eine Sprache für Echtzeitabfragen und Aktualisierungen auf Zeilenebene.

Eigenschaften von Hive

  1. Es speichert das Schema in der Datenbank und verarbeitet Daten in HDFS.

  2. Es ist für ausgelegt OLAP.

  3. Es bietet eine SQLTypensprache für die Abfrage mit dem Namen HiveQLoder HQL.

  4. Es ist familiärer, schneller, skalierbarer und erweiterbarer.

Hive-Architektur

Die folgenden Komponenten sind in Hive Architecture enthalten:

  1. Benutzeroberfläche : Hiveist eine data warehouseInfrastruktur, die eine Interaktion zwischen Benutzer und Benutzer herstellen kann HDFS. Die unterstützten Benutzeroberflächen Hivesind Hive Web UI, Hive Command Line und Hive HD Insight (unter Windows Server).

  2. MetaStore : Hivewählt jeweils database serversdas Speichern des Schemas oder Metadatavon Tabellen, Datenbanken, Spalten in einer Tabelle, deren Datentypen und HDFSZuordnung.

  3. HiveQL Process Engine : HiveQLähnelt der SQLAbfrage von Schemainformationen auf der Metastore. Es ist einer der Ersatz für den traditionellen MapReduceProgrammansatz. Statt des Schreibens MapReducein Java, können wir eine Abfrage für schreiben MapReduceund sie verarbeiten.

  4. Exceution Engine : Der Verbindungsteil der HiveQLProcess Engine und MapReduceist die HiveExecution Engine. Die Execution Engine verarbeitet die Abfrage und generiert die gleichen Ergebnisse wie MapReduce results. Es verwendet den Geschmack von MapReduce.

  5. HDFS oder HBase : HadoopDistributed File System oder HBasesind die Datenspeichertechniken zum Speichern von Daten im Dateisystem.


1

Zunächst sollten wir uns darüber im Klaren sein, dass Hadoop als schnellere Alternative zu RDBMS entwickelt wurde . Die Verarbeitung großer Datenmengen mit einer sehr schnellen Rate, die früher in RDBMS viel Zeit in Anspruch nahm.

Jetzt sollte man die beiden Begriffe kennen:

  1. Strukturierte Daten : Dies sind die Daten, die wir in herkömmlichen RDBMS verwendet haben und die in genau definierte Strukturen unterteilt sind.

  2. Unstrukturierte Daten : Dies ist wichtig zu verstehen, dass etwa 80% der Weltdaten unstrukturiert oder halbstrukturiert sind. Dies sind die Daten, die sich in ihrer Rohform befinden und nicht mit RDMS verarbeitet werden können. Beispiel: Facebook, Twitter Daten. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

Daher wurde in den letzten Jahren eine große Datenmenge generiert, und die Daten waren größtenteils unstrukturiert, wodurch HADOOP entstand. Es wurde hauptsächlich für sehr große Datenmengen verwendet, die mit RDBMS nicht realisierbar sind. Es hatte viele Nachteile, dass es nicht für vergleichsweise kleine Daten in Echtzeit verwendet werden konnte, aber es ist ihnen gelungen, seine Nachteile in der neueren Version zu beseitigen.

Bevor ich fortfahre, möchte ich sagen, dass ein neues Big-Data-Tool erstellt wird, wenn bei den vorherigen Tools ein Fehler auftritt. Unabhängig davon, welches Tool erstellt wird, wurde das Problem der vorherigen Tools behoben.

Hadoop kann einfach als zwei Dinge gesagt werden: Mapreduce und HDFS . In Mapreduce findet die Verarbeitung statt, und in HDFS werden die Daten gespeichert. Diese Struktur folgte dem WORM- Prinzip, dh einmal mehrfach lesen. Sobald wir Daten in HDFS gespeichert haben, können wir keine Änderungen mehr vornehmen. Dies führte zur Schaffung von HBASE , einem NOSQL-Produkt, bei dem wir Änderungen an den Daten auch nach einmaligem Schreiben vornehmen können.

Aber mit der Zeit haben wir gesehen, dass Hadoop viele Fehler hatte und dafür haben wir eine andere Umgebung über die Hadoop-Struktur geschaffen. PIG und HIVE sind zwei beliebte Beispiele.

HIVE wurde für Personen mit SQL- Hintergrund erstellt. Die geschriebenen Abfragen ähneln SQL mit dem Namen HIVEQL . HIVE wurde entwickelt, um vollständig strukturierte Daten zu verarbeiten . Es wird nicht für strukturierte Daten verwendet.

PIG hingegen hat eine eigene Abfragesprache, dh PIG LATIN . Es kann sowohl für strukturierte als auch für unstrukturierte Daten verwendet werden .

Ich denke, niemand anders als der Architekt von PIG könnte sagen, wann man HIVE und wann PIG einsetzt. Folgen Sie dem Link: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


1

Hadoop:

HDFS steht für Hadoop Distributed File System, das das Computational Processing Model Map-Reduce verwendet.

HBase:

HBase ist ein Schlüsselwertspeicher, der nahezu in Echtzeit zum Lesen und Schreiben geeignet ist.

Bienenstock:

Hive wird für die Datenextraktion aus dem HDFS mithilfe einer SQL-ähnlichen Syntax verwendet. Hive verwenden HQL-Sprache.

Schwein:

Pig ist eine Datenflusssprache zum Erstellen von ETL. Es ist eine Skriptsprache.


0

Lassen Sie mich versuchen, in wenigen Worten zu antworten.

Hadoop ist ein Ökosystem, das alle anderen Werkzeuge umfasst. Sie können Hadoop also nicht vergleichen, aber Sie können MapReduce vergleichen.

Hier sind meine paar Cent:

  1. Hive: Wenn Ihr Bedarf sehr SQLish ist, was bedeutet, dass Ihre Problemstellung von SQL erfüllt werden kann, ist es am einfachsten, Hive zu verwenden. Der andere Fall, wenn Sie Hive verwenden würden, ist, wenn ein Server eine bestimmte Datenstruktur haben soll.
  2. Pig: Wenn Sie mit Pig Latin vertraut sind und mehr Datenpipelines benötigen. Außerdem fehlt Ihren Daten die Struktur. In diesen Fällen könnten Sie Pig verwenden. Ehrlich gesagt gibt es keinen großen Unterschied zwischen Hive & Pig in Bezug auf die Anwendungsfälle.
  3. MapReduce: Wenn Ihr Problem nicht mit SQL Straight gelöst werden kann, sollten Sie zuerst versuchen, eine UDF für Hive & Pig zu erstellen. Wenn die UDF das Problem nicht löst, ist es sinnvoll, es über MapReduce zu erledigen.

0

Schwein: Es ist besser, Dateien zu verarbeiten und Daten zu bereinigen. Beispiel: Entfernen von Nullwerten, Behandeln von Zeichenfolgen, unnötige Werte. Hive: Zum Abfragen bereinigter Daten


0

1.Wir verwenden Hadoop zum Speichern großer Datenmengen (iestructure-, Unstructure- und Semistructure-Daten) im Formulardateiformat wie txt, csv.

2.Wenn wir Spaltenaktualisierungen in unseren Daten wünschen, verwenden wir das Hbase-Tool

3. Im Fall von Hive speichern wir Big Data in strukturiertem Format und bieten zusätzlich eine Analyse dieser Daten an.

4.Pig ist ein Tool, das die lateinische Sprache Pig verwendet, um Daten in jedem Format (Struktur, Semistruktur und Unstruktur) zu analysieren.


0

Das Bereinigen von Daten in Pig ist sehr einfach. Ein geeigneter Ansatz wäre, Daten über Pig zu bereinigen und dann Daten über Hive zu verarbeiten und später auf HDFS hochzuladen.


0

Die Verwendung von Hive, Hbase und Pig für meine Echtzeiterfahrung in verschiedenen Projekten.

Hive wird hauptsächlich verwendet für:

  • Analysezweck, bei dem Sie eine Analyse der Verlaufsdaten durchführen müssen

  • Generieren von Geschäftsberichten basierend auf bestimmten Spalten

  • Effiziente Verwaltung der Daten zusammen mit Metadateninformationen

  • Verknüpfen von Tabellen in bestimmten Spalten, die häufig mithilfe des Bucketing-Konzepts verwendet werden

  • Effizientes Speichern und Abfragen mithilfe des Partitionierungskonzepts

  • Nicht nützlich für Operationen auf Transaktions- / Zeilenebene wie Aktualisieren, Löschen usw.

Schwein wird hauptsächlich verwendet für:

  • Häufige Datenanalyse für große Datenmengen

  • Generieren aggregierter Werte / Zählungen für große Datenmengen

  • Generieren von Leistungsindikatoren auf Unternehmensebene sehr häufig

Hbase wird meistens verwendet:

  • Zur Echtzeitverarbeitung von Daten

  • Zur effizienten Verwaltung komplexer und verschachtelter Schemata

  • Für Echtzeitabfragen und schnellere Ergebnisse

  • Für einfache Skalierbarkeit mit Spalten

  • Nützlich für Operationen auf Transaktions- / Zeilenebene wie Aktualisieren, Löschen usw.


0

Kurze Antwort auf diese Frage lautet -

Hadoop - ist ein Framework, das ein verteiltes Dateisystem und ein Programmiermodell ermöglicht, mit denen wir Daten mit großer Größe speichern und Daten auf verteilte Weise sehr effizient und mit sehr viel weniger Verarbeitungszeit verarbeiten können als mit herkömmlichen Ansätzen.

(HDFS - Hadoop Distributed File System) (Map Reduce - Programmiermodell für die verteilte Verarbeitung)

Hive - Ist eine Abfragesprache, die das Lesen / Schreiben von Daten aus dem verteilten Hadoop-Dateisystem in einer sehr beliebten SQL-ähnlichen Weise ermöglicht. Dies erleichterte vielen Nicht-Programmierern das Leben, da sie kein Map-Reduce-Programm mehr schreiben müssen, außer in sehr komplexen Szenarien, in denen Hive nicht unterstützt wird.

Hbase - Ist eine kolumnare NoSQL-Datenbank. Die zugrunde liegende Speicherschicht für Hbase ist wieder HDFS. Der wichtigste Anwendungsfall für diese Datenbank besteht darin, Milliarden von Zeilen mit Millionen von Spalten speichern zu können. Die Funktion mit geringer Latenz von Hbase ermöglicht einen schnelleren und zufälligen Zugriff auf Datensätze über verteilte Daten. Dies ist eine sehr wichtige Funktion, um sie für komplexe Projekte wie Recommender Engines nützlich zu machen. Dank der Versionierungsfunktion auf Datensatzebene können Benutzer Transaktionsdaten sehr effizient speichern (dies löst das Problem der Aktualisierung von Datensätzen mit HDFS und Hive).

Hoffe, dies ist hilfreich, um die oben genannten 3 Funktionen schnell zu verstehen.


0

Ich glaube, dieser Thread wurde HBase und Pig nicht besonders gerecht. Während ich glaube, dass Hadoop die Wahl des verteilten, ausfallsicheren Dateisystems für Big-Data-Lake-Implementierungen ist, ist die Wahl zwischen HBase und Hive besonders gut getrennt.

Wie in vielen Anwendungsfällen werden bestimmte Anforderungen an SQL-ähnliche oder No-SQL-ähnliche Schnittstellen gestellt. Mit Phoenix auf HBase, obwohl SQL-ähnliche Funktionen sicherlich erreichbar sind, sind die Leistung, die Integration von Drittanbietern und das Dashboard-Update eine Art schmerzhafte Erfahrungen. Es ist jedoch eine ausgezeichnete Wahl für Datenbanken, die eine horizontale Skalierung erfordern.

Schwein eignet sich besonders für nicht rekursive Chargen wie Berechnungen oder ETL-Pipelining (irgendwo, wo es Spark um einen angenehmen Abstand übertrifft). Darüber hinaus sind die Datenflussimplementierungen auf hoher Ebene eine ausgezeichnete Wahl für die Stapelabfrage und Skripterstellung. Die Wahl zwischen Pig und Hive hängt auch von den Anforderungen des clientseitigen oder serverseitigen Skripts, den erforderlichen Dateiformaten usw. ab. Pig unterstützt das Avro-Dateiformat, das im Fall von Hive nicht der Fall ist. Die Wahl zwischen "prozeduraler Datenflusssprache" und "deklarativer Datenflusssprache" ist auch ein starkes Argument für die Wahl zwischen Schwein und Bienenstock.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.