Sqoop-opetusohjelma: Mikä on Apache Sqoop? Arkkitehtuuri & Esimerkki

Sisällysluettelo:

Anonim

Mikä on SQOOP Hadoopissa?

Apache SQOOP (SQL-to-Hadoop) on työkalu, joka on suunniteltu tukemaan tietojen joukkovientiä ja tuontia HDFS-järjestelmään jäsennellyistä tietovarastoista, kuten relaatiotietokannoista, yritystietovarastoista ja NoSQL-järjestelmistä. Se on tiedonsiirtotyökalu, joka perustuu liitinarkkitehtuuriin, joka tukee laajennuksia yhteyden tarjoamiseksi uusiin ulkoisiin järjestelmiin.

Esimerkki Hadoop Sqoopin käyttötapauksesta on yritys, joka suorittaa Sqoop-tuonnin joka ilta ladatakseen päivän tiedot tuotantotapahtumien RDBMS-järjestelmästä Hive-tietovarastoon jatkoanalyysiä varten.

Seuraavaksi tässä Apache Sqoop -oppaassa opitaan Apache Sqoop -arkkitehtuurista.

Sqoop-arkkitehtuuri

Kaikki olemassa olevat tietokannan hallintajärjestelmät on suunniteltu SQL-standardia ajatellen. Jokainen DBMS eroaa kuitenkin jonkin verran 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.

Sqoopissa on liittimet, joiden avulla voidaan työskennellä useiden suosittujen relaatiotietokantojen kanssa, mukaan lukien MySQL, PostgreSQL, Oracle, SQL Server ja DB2. Kukin näistä liittimistä osaa olla vuorovaikutuksessa siihen liittyvän DBMS: n kanssa. Siellä on myös yleinen JDBC-liitin yhteyden muodostamiseksi mihin tahansa tietokantaan, joka tukee Javan JDBC-protokollaa. Lisäksi Sqoop Big data tarjoaa optimoituja MySQL- ja PostgreSQL-liittimiä, jotka käyttävät tietokantakohtaisia ​​sovellusliittymiä joukkoliikenteen tehokkaaseen suorittamiseen.

Sqoop-arkkitehtuuri

Tämän lisäksi suurten tietojen Sqoopissa on useita kolmansien osapuolten liittimiä tietovarastoille aina yrityksen tietovarastoista (mukaan lukien Netezza, Teradata ja Oracle) NoSQL-myymälöihin (kuten Couchbase). Näissä liittimissä ei kuitenkaan ole Sqoop-pakettia; ne on ladattava erikseen ja ne voidaan lisätä helposti olemassa olevaan Sqoop-asennukseen.

Miksi tarvitsemme Sqoopia?

Analyyttinen käsittely Hadoopin avulla vaatii valtavan määrän tietoja eri lähteistä Hadoop-klustereihin. Tämä prosessi, jonka avulla Hadoopiin ladataan heterogeenisistä lähteistä ja sitten käsitellään sitä, sisältää tiettyjä haasteita. Tietojen yhdenmukaisuuden ylläpitäminen ja varmistaminen sekä resurssien tehokkaan käytön varmistaminen ovat joitain tekijöitä, jotka on otettava huomioon ennen oikean lähestymistavan valitsemista tietokuormitukselle.

Suuria ongelmia:

1. Tietojen lataus komentosarjojen avulla

Perinteinen tapa käyttää komentosarjoja tietojen lataamiseen ei sovellu joukkotiedon 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 (lataamatta Hadoopiin) karttaa pienentäville sovelluksille vaikeuttaa näitä sovelluksia. Joten tämä lähestymistapa ei ole toteutettavissa.

3. Sen lisäksi, että Hadoop kykenee työskentelemään valtavien tietojen kanssa, se voi työskennellä datan kanssa useissa eri muodoissa. Joten tällaisten heterogeenisten tietojen lataamiseksi Hadoopiin on kehitetty erilaisia ​​työkaluja. Sqoop ja Flume ovat kaksi tällaista tiedonsiirtotyökalua.

Seuraavaksi tässä Sqoop-opetusohjelmassa, jossa on esimerkkejä, opimme Sqoopin, Flumen ja HDFS: n eroista.

Sqoop vs Flume vs HDFS Hadoopissa

Sqoop Flume HDFS
Sqoopia käytetään tietojen tuontiin strukturoiduista tietolähteistä, kuten RDBMS. Flumea käytetään joukkovirtaustiedon siirtämiseen HDFS: ään. HDFS on hajautettu tiedostojärjestelmä, jota Hadoop-ekosysteemi käyttää tietojen tallentamiseen.
Sqoopilla on liitinpohjainen arkkitehtuuri. Liittimet osaavat muodostaa yhteyden kyseiseen tietolähteeseen ja noutaa tiedot. Flumella on agenttipohjainen arkkitehtuuri. Tässä kirjoitetaan koodi (jota kutsutaan agentiksi), joka huolehtii tietojen hakemisesta. HDFS: llä on hajautettu arkkitehtuuri, jossa data jaetaan useille datasolmuille.
HDFS on kohde tietojen tuonnille Sqoopia käyttäen. Data virtaa HDFS: ään nollan tai useamman kanavan kautta. HDFS on perimmäinen kohde tietojen tallennukseen.
Sqoop-datakuorma ei ole tapahtumavetoinen. Flume-datakuormaa voi ohjata tapahtuma. HDFS vain tallentaa sille toimitetut tiedot millä tahansa tavalla.
Tietojen tuomiseksi jäsennellyistä tietolähteistä on käytettävä vain Sqoop-komentoja, koska sen liittimet tietävät, miten olla vuorovaikutuksessa jäsenneltyjen tietolähteiden kanssa ja hakea tietoja niistä. Suoratoistodatan, kuten Twitterissä luotujen twiittien tai verkkopalvelimen lokitiedostojen, lataamiseen on käytettävä Flumea. Flume-agentit on rakennettu striimaustietojen hakemiseen. HDFS: llä on omat sisäänrakennetut komentokomennot tietojen tallentamiseksi siihen. HDFS ei voi tuoda suoratoistodataa