Mis on SQOOP Hadoopis?
Apache SQOOP (SQL-to-Hadoop) on tööriist, mis on loodud andmete hulgiekspordimise ja HDFS-i importimise toetamiseks struktureeritud andmekogudest, näiteks relatsioonandmebaasidest, ettevõtte andmelaost ja NoSQL-i süsteemidest. See on pistikuarhitektuuril põhinev andmeedastusriist, mis toetab pistikprogramme uute väliste süsteemidega ühenduvuse tagamiseks.
Hadoop Sqoopi kasutamise näide on ettevõte, mis käitab iga-aastase Sqoopi impordi, et laadida päevaandmed tootmistehingu RDBMS-ist Hive'i andmelaos edasiseks analüüsimiseks.
Järgmisena selles Apache Sqoopi õpetuses tutvume Apache Sqoopi arhitektuuriga.
Sqoopi arhitektuur
Kõik olemasolevad andmebaaside haldussüsteemid on loodud SQL standardit silmas pidades. Kuid iga DBMS erineb mingil määral murde poolest. Niisiis, see erinevus tekitab väljakutseid, kui tegemist on andmeedastusega süsteemides. Sqoop-ühendused on komponendid, mis aitavad nendest väljakutsetest üle saada.
Andmete ülekandmine Sqoop Hadoopi ja välise salvestussüsteemi vahel on võimalik Sqoopi pistikute abil.
Sqoopil on pistikud paljude populaarsete relatsiooniliste andmebaasidega töötamiseks, sealhulgas MySQL, PostgreSQL, Oracle, SQL Server ja DB2. Kõik need pistikud teavad, kuidas suhelda seotud DBMS-iga. Samuti on olemas üldine JDBC-pistik ühenduse loomiseks mis tahes andmebaasiga, mis toetab Java JDBC-protokolli. Lisaks pakub Sqoop Big data optimeeritud MySQL ja PostgreSQL konnektoreid, mis kasutavad andmebaasi spetsiifilisi API-sid hulgiedastuste tõhusaks teostamiseks.
Lisaks sellele on suurandmetes oleval Sqoopil mitmesugused kolmandate osapoolte pistikud andmekogude jaoks, ulatudes ettevõtte andmeladudest (sh Netezza, Teradata ja Oracle) kuni NoSQL-i kauplusteni (näiteks Couchbase). Kuid need pistikud ei kuulu Sqoopi kimpu; need tuleb eraldi alla laadida ja neid saab hõlpsalt olemasolevale Sqoopi installile lisada.
Miks me vajame Sqoopi?
Hadoopi abil tehtav analüütiline töötlemine nõuab tohutute andmete kogumist erinevatest allikatest Hadoopi klastritesse. Selle hulga andmete laadimise Hadoopi protsess heterogeensetest allikatest ja seejärel nende töötlemisega kaasnevad teatud väljakutsed. Andmete järjepidevuse säilitamine ja tagamine ning ressursside tõhusa kasutamise tagamine on mõned tegurid, mida tuleks enne andmete laadimiseks õige lähenemise valimist arvesse võtta.
Peamised probleemid:
1. Andmete laadimine skriptide abil
Traditsiooniline lähenemisviis, kus andmete laadimiseks kasutatakse skripte, ei sobi andmete hulgi laadimiseks Hadoopi; see lähenemine on ebaefektiivne ja väga aeganõudev.
2. Otsene juurdepääs välistele andmetele rakenduse Map-Reduce kaudu
Otsese juurdepääsu võimaldamine välissüsteemides asuvatele andmetele (ilma Hadoopi laadimiseta) kaartide vähendamise rakenduste jaoks raskendab neid rakendusi. Niisiis pole see lähenemine teostatav.
3. Lisaks tohutute andmetega töötamise võimele saab Hadoop töötada andmetega ka mitmel erineval kujul. Niisiis, selliste heterogeensete andmete Hadoopi laadimiseks on välja töötatud erinevad tööriistad. Sqoop ja Flume on kaks sellist andmete laadimise tööriista.
Järgmisena selles Sqoopi õpetuses koos näidetega saame teada Sqoopi, Flume'i ja HDFS-i erinevusest.
Sqoop vs Flume vs HDFS Hadoopis
Sqoop | Flume | HDFS |
---|---|---|
Rakendust Sqoop kasutatakse andmete importimiseks struktureeritud andmeallikatest, näiteks RDBMS. | Flume'i kasutatakse sujuvate voogedastuse andmete teisaldamiseks HDFS-i. | HDFS on hajutatud failisüsteem, mida Hadoopi ökosüsteem kasutab andmete salvestamiseks. |
Sqoopil on pistikupõhine arhitektuur. Pistikud teavad, kuidas vastava andmeallikaga ühendust luua ja andmeid tuua. | Flume'il on agendipõhine arhitektuur. Siin kirjutatakse kood (mida nimetatakse agentiks), mis hoolitseb andmete toomise eest. | HDFS-il on hajutatud arhitektuur, kus andmeid jagatakse mitme andmesõlme vahel. |
HDFS on Sqoopi abil andmete importimise sihtkoht. | Andmed liiguvad HDFS-i null või enama kanali kaudu. | HDFS on andmete salvestamise ülim sihtkoht. |
Sqoopi andmekoormus ei ole sündmustepõhine. | Flume andmekoormust saab juhtida sündmus. | HDFS lihtsalt salvestab talle edastatud andmeid mis tahes viisil. |
Andmete importimiseks struktureeritud andmeallikatest tuleb kasutada ainult käske Sqoop, sest selle pistikud teavad, kuidas struktureeritud andmeallikatega suhelda ja neist andmeid hankida. | Voogesitusandmete (nt Twitteris loodud säutsude või veebiserveri logifailide) laadimiseks tuleks kasutada Flume'i. Flume-agendid on loodud voogedastuse andmete toomiseks. | HDFS-il on andmete sisse salvestamiseks oma sisseehitatud shellikäsklused. HDFS ei saa voogesituse andmeid importida |