Tiefe verstehen
Hadoop
Hadoop
ist ein Open Source Projekt der Apache
Stiftung. 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 Nutch
die Textsuchmaschine zu unterstützen . Hadoop
verwendet GoogleMap Reduce
Technologien von und Google File System als Grundlage.
Eigenschaften von Hadoop
- Es ist für die Verarbeitung großer Mengen strukturierter, halbstrukturierter und unstrukturierter Daten mithilfe von Standardhardware optimiert.
- Es hat nichts Architektur geteilt.
- 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.
Hadoop
ist 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.
- Es ergänzt die Online-Transaktionsverarbeitung und die Online-Analyseverarbeitung. Es ist jedoch kein Ersatz für a
RDBMS
.
- Es ist nicht gut, wenn die Arbeit nicht parallelisiert werden kann oder wenn Abhängigkeiten innerhalb der Daten bestehen.
- 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 Hadoop
Verfügung:
- Hadoop 1.0
- 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: MAP
und REDUCE
zum 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
Die erste Einschränkung war das Erfordernis von MapReduce
Programmierkenntnissen.
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.
Eine wesentliche Einschränkung bestand darin, dass Hadoop 1.0
eine enge rechnerische Verknüpfung bestand MapReduce
, was bedeutete, dass die etablierten Datenverwaltungsanbieter zwei Meinungen hatten:
Schreiben Sie entweder ihre Funktionalität neu, MapReduce
damit sie in Hadoop
oder ausgeführt werden kann
Extrahieren Sie Daten aus HDFS
oder 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 Hadoop
Cluster 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. MapReduce
ist 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. HDFS
ist Schema weniger. Erst später, wenn die Daten verarbeitet werden müssen, wird die Struktur den Rohdaten auferlegt.
Es ist skalierbar. Hadoop
kann sehr große Datenmengen auf Hunderten von kostengünstigen Servern speichern und verteilen, die parallel arbeiten.
Es ist widerstandsfähig gegen Ausfälle. Hadoop
ist 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 Hadoop
ist, dass es mit jeder Art von Daten arbeiten kann: strukturiert, unstrukturiert oder halbstrukturiert. Außerdem ist die Verarbeitung Hadoop
aufgrund des Paradigmas "Code in Daten verschieben" extrem schnell .
Hadoop-Ökosystem
Im Folgenden sind die Komponenten des Hadoop
Ökosystems aufgeführt:
HDFS : Hadoop
Verteiltes 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 SQL
ist, auf Daten in einem Hadoop
Cluster zugreifen kann .
Schwein : Es ist eine leicht verständliche Datenflusssprache. Es hilft bei der Analyse großer Datenmengen, was durchaus in Ordnung ist Hadoop
. Pig
Skripte werden MapReduce
vom Pig
Interpreter automatisch in Jobs konvertiert .
ZooKeeper : Es ist ein Koordinierungsdienst für verteilte Anwendungen.
Oozie : Es ist ein Workflow- schedular
System zum Verwalten von Apache- Hadoop
Jobs.
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 Hadoop
und strukturierten Datenspeichern wie relationalen Datenbanken zu übertragen.
Ambari : Es ist ein webbasiertes Tool zum Bereitstellen, Verwalten und Überwachen von Hadoop
Clustern.
Bienenstock
Hive
ist ein Data Warehouse-Infrastruktur-Tool zur Verarbeitung strukturierter Daten Hadoop
. Es basiert auf der Hadoop
Zusammenfassung von Big Data und erleichtert das Abfragen und Analysieren.
Bienenstock ist nicht
Eine relationale Datenbank
Ein Design für die Online-Transaktionsverarbeitung ( OLTP
).
Eine Sprache für Echtzeitabfragen und Aktualisierungen auf Zeilenebene.
Eigenschaften von Hive
Es speichert das Schema in der Datenbank und verarbeitet Daten in HDFS
.
Es ist für ausgelegt OLAP
.
Es bietet eine SQL
Typensprache für die Abfrage mit dem Namen HiveQL
oder HQL
.
Es ist familiärer, schneller, skalierbarer und erweiterbarer.
Hive-Architektur
Die folgenden Komponenten sind in Hive Architecture enthalten:
Benutzeroberfläche : Hive
ist eine data warehouse
Infrastruktur, die eine Interaktion zwischen Benutzer und Benutzer herstellen kann HDFS
. Die unterstützten Benutzeroberflächen Hive
sind Hive Web UI, Hive Command Line und Hive HD Insight (unter Windows Server).
MetaStore : Hive
wählt jeweils database
servers
das Speichern des Schemas oder Metadata
von Tabellen, Datenbanken, Spalten in einer Tabelle, deren Datentypen und HDFS
Zuordnung.
HiveQL Process Engine : HiveQL
ähnelt der SQL
Abfrage von Schemainformationen auf der Metastore
. Es ist einer der Ersatz für den traditionellen MapReduce
Programmansatz. Statt des Schreibens MapReduce
in Java
, können wir eine Abfrage für schreiben MapReduce
und sie verarbeiten.
Exceution Engine : Der Verbindungsteil der HiveQL
Process Engine und MapReduce
ist die Hive
Execution Engine. Die Execution Engine verarbeitet die Abfrage und generiert die gleichen Ergebnisse wie MapReduce results
. Es verwendet den Geschmack von MapReduce
.
HDFS oder HBase : Hadoop
Distributed File System oder HBase
sind die Datenspeichertechniken zum Speichern von Daten im Dateisystem.