Sqoop-opetusohjelma: Mikä Apache Sqoop on? Architecture & Esimerkki
Mikä on SQOOP Hadoopissa?
Apache SQOOP (SQL-to-Hadoop) on työkalu, joka on suunniteltu tukemaan tietojen joukkovientiä ja tuontia HDFS:ään strukturoiduista tietovarastoista, kuten relaatiotietokannoista, yrityksen tietovarastoista ja NoSQL-järjestelmistä. Se on tiedonsiirtotyökalu, joka perustuu liitinarkkitehtuuriin, joka tukee laajennuksia, jotka tarjoavat yhteyden uusiin ulkoisiin järjestelmiin.
Esimerkki Hadoop Sqoopin käyttötapauksesta on yritys, joka suorittaa iltaisin Sqoop-tuonnin ladatakseen päivän tiedot tuotantotapahtuman RDBMS:stä Hive tietovarasto lisäanalyysiä varten.
Seuraavaksi tässä Apache Sqoop -opetusohjelmassa opimme Apache Sqoop -arkkitehtuurista.
Sqoop Archirakenne
Kaikki olemassa olevat Tietokannan hallintajärjestelmät on suunniteltu SQL standardi mielessä. Jokainen DBMS eroaa kuitenkin jossain määrin murteen suhteen. Joten tämä ero asettaa haasteita tiedonsiirrossa järjestelmien välillä. Sqoop-liittimet ovat komponentteja, jotka auttavat voittamaan nämä haasteet.
Tiedonsiirto Sqoop Hadoopin ja ulkoisen tallennusjärjestelmän välillä on mahdollista Sqoopin liittimien avulla.
Sqoopilla on liittimet useiden suosittujen relaatiotietokantojen kanssa työskentelyyn, mukaan lukien MySQL, PostgreSQL, Oracle, SQL Server ja DB2. Jokainen näistä liittimistä osaa toimia vuorovaikutuksessa siihen liittyvien DBMS-järjestelmien kanssa. Siellä on myös yleinen JDBC-liitin yhteyden muodostamiseen mihin tahansa tukeen kuuluvaan tietokantaan JavaJDBC-protokollaa. Lisäksi Sqoop Big data tarjoaa optimoituja MySQL ja PostgreSQL liittimet, jotka käyttävät tietokantakohtaisia sovellusliittymiä joukkosiirtojen suorittamiseen tehokkaasti.
Tämän lisäksi Sqoop in big data sisältää useita kolmannen osapuolen liittimiä tietovarastoihin aina yrityskäyttöön. tietovarastot (mukaan lukien Netezza, Teradata ja Oracle) NoSQL-myymälöihin (kuten Couchbase). Nämä liittimet eivät kuitenkaan tule Sqoop-paketin mukana; ne on ladattava erikseen, ja ne voidaan lisätä helposti olemassa olevaan Sqoop-asennukseen.
Miksi tarvitsemme Sqoopia?
Hadoopin analyyttinen käsittely edellyttää valtavien tietomäärien lataamista eri lähteistä Hadoop-klusteriin. Tämä joukkotietojen lataaminen Hadoopiin heterogeenisistä lähteistä ja sen sitten käsitteleminen sisältää tiettyjä haasteita. Tietojen yhtenäisyyden ylläpitäminen ja varmistaminen sekä resurssien tehokkaan käytön varmistaminen ovat joitakin tekijöitä, jotka on otettava huomioon ennen oikean tiedonlataustavan valitsemista.
Suuria ongelmia:
1. Tietojen lataaminen komentosarjoilla
Perinteinen lähestymistapa, jossa käytetään komentosarjoja tietojen lataamiseen, ei sovellu joukkotietojen lataamiseen Hadoopiin. tämä lähestymistapa on tehoton ja erittäin aikaa vievä.
2. Suora pääsy ulkoisiin tietoihin Map-Reduce-sovelluksen kautta
Suoran pääsyn tarjoaminen ulkoisissa järjestelmissä oleviin tietoihin (ilman latausta Hadoopiin) karttaa vähentäville sovelluksille vaikeuttaa näitä sovelluksia. Tämä lähestymistapa ei siis ole toteuttamiskelpoinen.
3. Sen lisäksi, että Hadoopilla on kyky työskennellä valtavien tietojen kanssa, se voi työskennellä tietojen kanssa useissa eri muodoissa. Joten tällaisten heterogeenisten tietojen lataamiseksi Hadoopiin on kehitetty erilaisia työkaluja. Sqoop ja Flume ovat kaksi tällaista tietojen lataustyökalua.
Seuraavaksi tässä esimerkkejä sisältävässä Sqoop-opetusohjelmassa opimme Sqoopin, Flumen ja HDFS:n eroista.
Sqoop vs Flume vs HDFS Hadoopissa
Sqoop | Flume | HDFS |
---|---|---|
Sqoopia käytetään tietojen tuomiseen strukturoiduista tietolähteistä, kuten RDBMS. | Flumea käytetään joukkosuoratietojen siirtämiseen HDFS:ään. | HDFS on hajautettu tiedostojärjestelmä, jota Hadoop-ekosysteemi käyttää tietojen tallentamiseen. |
Sqoopilla on liitinpohjainen arkkitehtuuri. Liittimet osaavat muodostaa yhteyden vastaavaan tietolähteeseen ja hakea tiedot. | Flumella on agenttipohjainen arkkitehtuuri. Täällä kirjoitetaan koodi (jota kutsutaan "agentiksi"), joka huolehtii tietojen hakemisesta. | HDFS:llä on hajautettu arkkitehtuuri, jossa tiedot jaetaan useiden datasolmujen kesken. |
HDFS on kohde tietojen tuonnille Sqoopin avulla. | Data virtaa HDFS:ään nollan tai useamman kanavan kautta. | HDFS on lopullinen kohde tietojen tallentamiseen. |
Sqoop-datan lataus ei ole tapahtumapohjaista. | Flumen datakuormitus voi johtua tapahtumasta. | HDFS vain tallentaa sille millä tahansa tavalla toimitetut tiedot. |
Tietojen tuomiseksi strukturoiduista tietolähteistä on käytettävä vain Sqoop-komentoja, koska sen liittimet osaavat olla vuorovaikutuksessa strukturoitujen tietolähteiden kanssa ja hakea tietoja niistä. | Flumea tulisi käyttää suoratoistotietojen, kuten Twitterissä luotujen twiittien tai verkkopalvelimen lokitiedostojen, lataamiseen. Flume-agentit on suunniteltu suoratoistodatan hakemiseen. | HDFS:llä on omat sisäänrakennetut komentotulkkikomennot tietojen tallentamiseksi siihen. HDFS ei voi tuoda suoratoistodataa |