Sqoop-Tutorial: Was ist Apache Sqoop? Architektur & Beispiel

Was ist SQOOP in Hadoop?

Apache SQOOP (SQL-to-Hadoop) ist ein Tool zur Unterstützung des Massenexports und -imports von Daten in HDFS aus strukturierten Datenspeichern wie relationalen Datenbanken, Enterprise Data Warehouses und NoSQL-Systemen. Es handelt sich um ein Datenmigrationstool, das auf einem Connector basiert archiStruktur, die Plugins unterstützt, um Konnektivität zu neuen externen Systemen bereitzustellen.

Ein Beispielanwendungsfall für Hadoop Sqoop ist ein Unternehmen, das einen nächtlichen Sqoop-Import ausführt, um die Daten des Tages aus einem transaktionalen Produktions-RDBMS in ein zu laden Bienenstock Data Warehouse zur weiteren Analyse.

Als nächstes lernen wir in diesem Apache Sqoop-Tutorial etwas über Apache Sqoop archiStruktur.

Sqoop Architektur

Alle vorhandenen Datenbankmanagementsystem sind entworfen mit SQL Standard im Hinterkopf. Allerdings unterscheidet sich jedes DBMS in gewissem Maße hinsichtlich des Dialekts. Dieser Unterschied stellt also eine Herausforderung dar, wenn es um die Datenübertragung zwischen den Systemen geht. Sqoop Connectors sind Komponenten, die dabei helfen, diese Herausforderungen zu meistern.

Die Datenübertragung zwischen Sqoop Hadoop und externem Speichersystem wird mithilfe der Konnektoren von Sqoop ermöglicht.

Sqoop verfügt über Konnektoren für die Arbeit mit einer Reihe beliebter relationaler Datenbanken, darunter MySQL, PostgreSQL, Oracle, SQL Server und DB2. Jeder dieser Konnektoren weiß, wie er mit dem zugehörigen DBMS interagiert. Es gibt auch einen generischen JDBC-Connector für die Verbindung mit jeder Datenbank, die das JDBC-Protokoll von Java unterstützt. Darüber hinaus bietet Sqoop Big Data optimierte MySQL- und PostgreSQL-Konnektoren, die datenbankspezifische APIs verwenden, um Massenübertragungen effizient durchzuführen.

Sqoop Architektur
Sqoop Architektur

Darüber hinaus verfügt Sqoop im Bereich Big Data über verschiedene Konnektoren von Drittanbietern für Datenspeicher, angefangen bei Unternehmensdaten Data Warehouse (einschließlich Netezza, Teradata und Oracle) an NoSQL-Stores (z. B. Couchbase). Allerdings sind diese Anschlüsse nicht im Sqoop-Paket enthalten; Diese müssen separat heruntergeladen werden und können problemlos zu einer vorhandenen Sqoop-Installation hinzugefügt werden.

Warum brauchen wir Sqoop?

Die analytische Verarbeitung mit Hadoop erfordert das Laden riesiger Datenmengen aus verschiedenen Quellen in Hadoop-Cluster. Dieser Prozess des Ladens großer Datenmengen in Hadoop aus heterogenen QuellenneoDie Beschaffung unserer Quellen und die anschließende Verarbeitung bringt eine Reihe von Herausforderungen mit sich. Die Aufrechterhaltung und Sicherstellung der Datenkonsistenz sowie die Gewährleistung einer effizienten Ressourcennutzung sind einige Faktoren, die bei der Auswahl des richtigen Ansatzes für die Datenlast berücksichtigt werden müssen.

Große Probleme:

1. Laden von Daten mithilfe von Skripten

Der herkömmliche Ansatz, Skripte zum Laden von Daten zu verwenden, eignet sich nicht für das Laden großer Datenmengen in Hadoop; Dieser Ansatz ist ineffizient und sehr zeitaufwändig.

2. Direkter Zugriff auf externe Daten über die Map-Reduce-Anwendung

Die Bereitstellung des direkten Zugriffs auf die Daten in externen Systemen (ohne Laden in Hadoop) für Kartenreduzierungsanwendungen erschwert diese Anwendungen. Dieser Ansatz ist also nicht realisierbar.

3. Hadoop ist nicht nur in der Lage, mit riesigen Datenmengen zu arbeiten, sondern kann auch mit Daten in verschiedenen Formen arbeiten. Also, um solche Heterogenität zu ladenneoUm US-Daten in Hadoop zu übertragen, wurden verschiedene Tools entwickelt. Sqoop und Ücretsiz TJ ve AG casinolarda bonus kodlarını spin → sind zwei solcher Tools zum Laden von Daten.

Als nächstes lernen wir in diesem Sqoop-Tutorial mit Beispielen den Unterschied zwischen Sqoop, Flume und HDFS kennen.

Sqoop vs. Flume vs. HDFS in Hadoop

Sqoop Ücretsiz TJ ve AG casinolarda bonus kodlarını spin → HDFS
Sqoop wird zum Importieren von Daten aus strukturierten Datenquellen wie RDBMS verwendet. Flume wird zum Verschieben großer Streaming-Daten in HDFS verwendet. HDFS ist ein verteiltes Dateisystem, das von Hadoop verwendet wird ecosSystem zum Speichern von Daten.
Sqoop basiert auf einem Connector archiStruktur. Konnektoren wissen, wie sie sich mit der jeweiligen Datenquelle verbinden und die Daten abrufen. Flume ist agentenbasiert archiStruktur. Hier wird ein Code geschrieben (der als „Agent“ bezeichnet wird), der sich um das Abrufen der Daten kümmert. HDFS verfügt über eine verteilte archiStruktur, bei der Daten über mehrere Datenknoten verteilt werden.
HDFS ist ein Ziel für den Datenimport mit Sqoop. Der Datenfluss zu HDFS erfolgt über null oder mehr Kanäle. HDFS ist ein ultimatives Ziel für die Datenspeicherung.
Das Laden von Sqoop-Daten ist nicht ereignisgesteuert. Das Laden von Flume-Daten kann durch ein Ereignis gesteuert werden. HDFS speichert lediglich Daten, die ihm auf welche Weise auch immer zur Verfügung gestellt werden.
Um Daten aus strukturierten Datenquellen zu importieren, müssen nur Sqoop-Befehle verwendet werden, da seine Konnektoren wissen, wie sie mit strukturierten Datenquellen interagieren und Daten von ihnen abrufen. Um Streaming-Daten wie auf Twitter generierte Tweets oder Logdateien eines Webservers zu laden, sollte Flume verwendet werden. Flume-Agenten sind zum Abrufen von Streaming-Daten konzipiert. HDFS verfügt über eigene integrierte Shell-Befehle zum Speichern von Daten. HDFS kann keine Streaming-Daten importieren