Sqoop-Tutorial: Was ist Apache Sqoop? Architektur & Beispiel
Was ist SQOOP in Hadoop?
Apache SQOOP (SQL-to-Hadoop) ist ein Tool, das den Massenexport und -import von Daten in HDFS aus strukturierten Datenspeichern wie relationalen Datenbanken, Enterprise Data Warehouses und NoSQL-Systemen unterstützt. Es handelt sich um ein Datenmigrationstool, das auf einer Connector-Architektur basiert, die Plug-Ins unterstützt, um die Konnektivität zu neuen externen Systemen zu ermöglichen.
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 die Apache Sqoop-Architektur kennen.
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 kann mit dem zugehörigen DBMS interagieren. Es gibt auch einen generischen JDBC-Konnektor für die Verbindung mit jeder Datenbank, die Java's JDBC-Protokoll. Darüber hinaus bietet Sqoop Big Data optimierte MySQL und PostgreSQL Konnektoren, die datenbankspezifische APIs verwenden, um Massenübertragungen effizient durchzuführen.
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 großer Datenmengen aus unterschiedlichen Quellen in Hadoop-Cluster. Dieser Prozess des Ladens großer Datenmengen aus heterogenen Quellen in Hadoop und der anschließenden Verarbeitung bringt eine Reihe von Herausforderungen mit sich. Die Aufrechterhaltung und Gewährleistung der Datenkonsistenz und die Gewährleistung einer effizienten Nutzung der Ressourcen sind einige Faktoren, die bei der Auswahl des richtigen Ansatzes zum Laden der Daten 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 kann nicht nur mit enormen Datenmengen arbeiten, sondern auch mit Daten in verschiedenen Formen. Um solche heterogenen Daten in Hadoop zu laden, 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 vom Hadoop-Ökosystem zum Speichern von Daten verwendet wird. |
Sqoop verfügt über eine Connector-basierte Architektur. Connectoren wissen, wie sie sich mit der jeweiligen Datenquelle verbinden und die Daten abrufen. | Flume hat eine agentenbasierte Architektur. Dabei wird ein Code geschrieben (der als „Agent“ bezeichnet wird), der sich um das Abrufen der Daten kümmert. | HDFS verfügt über eine verteilte Architektur, bei der Daten auf 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 |