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
- 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.
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.
- 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 HadoopVerfü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: 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
Die erste Einschränkung war das Erfordernis von MapReduceProgrammierkenntnissen.
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.0eine enge rechnerische Verknüpfung bestand MapReduce, was bedeutete, dass die etablierten Datenverwaltungsanbieter zwei Meinungen hatten:
Schreiben Sie entweder ihre Funktionalität neu, MapReducedamit sie in Hadoopoder ausgeführt werden kann
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
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 SQLTypensprache für die Abfrage mit dem Namen HiveQLoder HQL.
Es ist familiärer, schneller, skalierbarer und erweiterbarer.
Hive-Architektur
Die folgenden Komponenten sind in Hive Architecture enthalten:
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).
MetaStore : Hivewählt jeweils database serversdas Speichern des Schemas oder Metadatavon Tabellen, Datenbanken, Spalten in einer Tabelle, deren Datentypen und HDFSZuordnung.
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.
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.
HDFS oder HBase : HadoopDistributed File System oder HBasesind die Datenspeichertechniken zum Speichern von Daten im Dateisystem.