Vodič za Sqoop: Što je Apache Sqoop? Arhitektura & Primjer

Sadržaj:

Anonim

Što je SQOOP u Hadoopu?

Apache SQOOP (SQL-to-Hadoop) alat je dizajniran za podršku skupnom izvozu i uvozu podataka u HDFS iz strukturiranih spremišta podataka, poput relacijskih baza podataka, skladišta podataka poduzeća i NoSQL sustava. To je alat za migraciju podataka zasnovan na arhitekturi konektora koji podržava dodatke za pružanje povezivanja s novim vanjskim sustavima.

Primjer upotrebe Hadoop Sqoop-a je poduzeće koje izvodi noćni uvoz Sqoop-a za učitavanje dnevnih podataka iz proizvodnog transakcijskog RDBMS-a u skladište podataka Hive-a za daljnju analizu.

Dalje u ovom vodiču za Apache Sqoop naučit ćemo o arhitekturi Apache Sqoop.

Sqoop arhitektura

Svi postojeći sustavi za upravljanje bazama podataka dizajnirani su s obzirom na SQL standard. Međutim, svaki DBMS se donekle razlikuje u odnosu na dijalekt. Dakle, ova razlika predstavlja izazove kada je riječ o prijenosu podataka kroz sustave. Sqoop konektori su komponente koje pomažu u prevladavanju ovih izazova.

Prijenos podataka između Sqoop Hadoopa i vanjskog sustava za pohranu omogućen je uz pomoć Sqoopovih konektora.

Sqoop ima konektore za rad s nizom popularnih relacijskih baza podataka, uključujući MySQL, PostgreSQL, Oracle, SQL Server i DB2. Svaki od ovih konektora zna kako komunicirati s pripadajućim DBMS-om. Tu je i generički JDBC konektor za povezivanje s bilo kojom bazom podataka koja podržava Javin JDBC protokol. Uz to, Sqoop Big data pruža optimizirane MySQL i PostgreSQL konektore koji koriste API-je specifične za bazu podataka za učinkovito obavljanje skupnih prijenosa.

Sqoop arhitektura

Uz to, Sqoop u velikim podacima ima razne konektore nezavisnih proizvođača za pohranu podataka, od skladišta podataka poduzeća (uključujući Netezzu, Teradata i Oracle) do NoSQL trgovina (poput Couchbase). Međutim, ovi konektori ne dolaze sa Sqoop paketom; one treba preuzeti posebno i mogu se lako dodati postojećoj instalaciji Sqoop-a.

Zašto nam treba Sqoop?

Analitička obrada pomoću Hadoopa zahtijeva učitavanje ogromnih količina podataka iz različitih izvora u Hadoop klastere. Ovaj postupak skupnog učitavanja podataka u Hadoop, iz heterogenih izvora, a zatim njihova obrada, dolazi s određenim nizom izazova. Održavanje i osiguravanje dosljednosti podataka i osiguravanje učinkovite upotrebe resursa, neki su čimbenici koje treba uzeti u obzir prije odabira pravog pristupa za učitavanje podataka.

Veliki problemi:

1. Učitavanje podataka pomoću skripti

Tradicionalni pristup korištenju skripti za učitavanje podataka nije prikladan za skupno učitavanje podataka u Hadoop; ovaj je pristup neučinkovit i vrlo dugotrajan.

2. Izravan pristup vanjskim podacima putem aplikacije Map-Reduce

Pružanje izravnog pristupa podacima koji se nalaze na vanjskim sustavima (bez učitavanja u Hadoop) za programe za smanjenje karte komplicira ove aplikacije. Dakle, ovaj pristup nije izvediv.

3. Osim što može raditi s ogromnim podacima, Hadoop može raditi s podacima u nekoliko različitih oblika. Dakle, za učitavanje takvih heterogenih podataka u Hadoop razvijeni su različiti alati. Sqoop i Flume dva su takva alata za učitavanje podataka.

Dalje u ovom vodiču za Sqoop s primjerima naučit ćemo o razlici između Sqoopa, Flumea i HDFS-a.

Sqoop vs Flume vs HDFS u Hadoopu

Sqoop Žlijeb HDFS
Sqoop se koristi za uvoz podataka iz strukturiranih izvora podataka kao što je RDBMS. Flume se koristi za premještanje skupnih podataka u HDFS. HDFS je distribuirani datotečni sustav koji koristi Hadoop ekosustav za pohranu podataka.
Sqoop ima arhitekturu temeljenu na konektorima. Konektori se znaju povezati s odgovarajućim izvorom podataka i dohvatiti podatke. Flume ima arhitekturu zasnovanu na agentu. Ovdje je napisan kod (koji se naziva 'agent') koji se brine za dohvaćanje podataka. HDFS ima distribuiranu arhitekturu gdje se podaci distribuiraju kroz više podatkovnih čvorova.
HDFS je odredište za uvoz podataka pomoću Sqoopa. Podaci se prebacuju na HDFS kroz nula ili više kanala. HDFS je krajnje odredište za pohranu podataka.
Učitavanje podataka Sqoop-a ne temelji se na događajima. Opterećenje podataka fluma može se pokretati događajem. HDFS samo pohranjuje podatke koji su mu dostavljeni na bilo koji način.
Da bi se uvezli podaci iz strukturiranih izvora podataka, moraju se koristiti samo naredbe Sqoop, jer njegovi konektori znaju kako komunicirati sa strukturiranim izvorima podataka i dohvatiti podatke iz njih. Da bi se učitali streaming podaci poput tweetova generiranih na Twitteru ili datoteka dnevnika web poslužitelja, treba koristiti Flume. Sredstva fluma izgrađena su za dohvaćanje podataka o strujanju. HDFS ima svoje ugrađene naredbe ljuske za spremanje podataka u njega. HDFS ne može uvesti streaming podatke