Sqoop bemutató: Mi az Apache Sqoop? Építészet & Példa

Tartalomjegyzék:

Anonim

Mi az SQOOP a Hadoopban?

Az Apache SQOOP (SQL-to-Hadoop) egy olyan eszköz, amelynek célja az adatok tömeges exportálása és importálása HDFS-be strukturált adattárolókból, például relációs adatbázisokból, vállalati adattárházakból és NoSQL rendszerekből. Ez egy összekötő architektúrán alapuló adatmigrációs eszköz, amely támogatja a beépülő modulokat az új külső rendszerekhez való kapcsolódás biztosítása érdekében.

A Hadoop Sqoop felhasználási példája egy olyan vállalkozás, amely éjszakai Sqoop importot futtat, hogy a napi adatokat egy termelési tranzakciós RDBMS-ből töltse be a Hive adattárházába további elemzés céljából.

Ezután ebben az Apache Sqoop oktatóanyagban megismerhetjük az Apache Sqoop architektúrát.

Sqoop építészet

Az összes meglévő adatbázis-kezelő rendszert az SQL szabvány szem előtt tartásával tervezték. Mindegyik DBMS azonban a dialektus tekintetében bizonyos mértékben különbözik. Tehát ez a különbség kihívásokat jelent, amikor a rendszerek közötti adatátvitelről van szó. A Sqoop csatlakozók olyan komponensek, amelyek segítenek leküzdeni ezeket a kihívásokat.

Az adatátvitel az Sqoop Hadoop és a külső tároló rendszer között az Sqoop csatlakozóinak segítségével lehetséges.

Az Sqoop rendelkezik csatlakozókkal számos népszerű relációs adatbázis - többek között MySQL, PostgreSQL, Oracle, SQL Server és DB2 - kezeléséhez. Ezek a csatlakozók mindegyike tudja, hogyan lépjen kapcsolatba a hozzá tartozó DBMS-kel. Van egy általános JDBC csatlakozó is minden olyan adatbázishoz, amely támogatja a Java JDBC protokollját. Ezenkívül az Sqoop Big data optimalizált MySQL és PostgreSQL csatlakozókat kínál, amelyek adatbázis-specifikus API-kat használnak a tömeges átvitel hatékony végrehajtásához.

Sqoop építészet

Emellett a Sqoop in big data különféle külső csatlakozókkal rendelkezik az adattárolók számára, a vállalati adattárházaktól (beleértve a Netezza, Teradata és Oracle) a NoSQL üzletekig (például a Couchbase). Ezek a csatlakozók azonban nem tartoznak a Sqoop csomagba; ezeket külön kell letölteni, és könnyen hozzá lehet adni egy meglévő Sqoop telepítéshez.

Miért van szükségünk Sqoop-ra?

A Hadoop segítségével végzett analitikai feldolgozáshoz hatalmas mennyiségű adatot kell különféle forrásokból betölteni a Hadoop-klaszterekbe. Ez a Hadoopba történő heterogén forrásokból történő tömeges betöltés, majd feldolgozás folyamata bizonyos kihívásokkal jár. Az adatok konzisztenciájának fenntartása és biztosítása, valamint az erőforrások hatékony felhasználásának biztosítása néhány tényező, amelyet figyelembe kell venni, mielőtt az adatterheléshez megfelelő megközelítést választanánk.

Fő problémák:

1. Adatbetöltés a szkriptek segítségével

A szkriptek adatainak betöltésére vonatkozó hagyományos megközelítés nem alkalmas a Hadoopba történő tömeges adatterhelésre; ez a megközelítés nem hatékony és nagyon időigényes.

2. Közvetlen hozzáférés a külső adatokhoz a Map-Reduce alkalmazáson keresztül

Közvetlen hozzáférés biztosítása a külső rendszerekben található adatokhoz (a Hadoopba történő betöltés nélkül) a térképcsökkentő alkalmazások számára bonyolítja ezeket az alkalmazásokat. Tehát ez a megközelítés nem kivitelezhető.

3. Amellett, hogy hatalmas adatokkal képes dolgozni, a Hadoop többféle formában is képes dolgozni az adatokkal. Tehát az ilyen heterogén adatok Hadoopba történő betöltéséhez különböző eszközöket fejlesztettek ki. A Sqoop és a Flume két ilyen adatbetöltő eszköz.

Ezután ebben a Sqoop oktatóanyagban példákkal megismerhetjük az Sqoop, a Flume és a HDFS közötti különbséget.

Sqoop vs Flume vs HDFS a Hadoopban

Sqoop Flume HDFS
Az Sqoop adatainak importálására szolgál strukturált adatforrásokból, például RDBMS-ből. A Flume-ot tömeges adatfolyam-továbbításhoz használják HDFS-be. A HDFS egy elosztott fájlrendszer, amelyet a Hadoop ökoszisztéma használ az adatok tárolására.
A Sqoop csatlakozóalapú architektúrával rendelkezik. A csatlakozók tudják, hogyan kell csatlakozni az adott adatforráshoz, és lehívni az adatokat. A Flume ügynök-alapú architektúrával rendelkezik. Itt egy kódot írnak (amelyet "ügynöknek" hívnak), amely gondoskodik az adatok beolvasásáról. A HDFS elosztott architektúrával rendelkezik, ahol az adatokat több adatcsomóponton osztják szét.
A HDFS a Sqoop segítségével történő adatimportálás célpontja. Az adatok nulla vagy több csatornán keresztül áramlanak a HDFS-be. A HDFS az adattárolás végső rendeltetési helye.
Az Sqoop adatterhelése nem eseményvezérelt. Az adatfolyam-terhelést egy esemény vezérelheti. A HDFS csak bármilyen módon tárolja a számára átadott adatokat.
Az adatok strukturált adatforrásokból történő importálásához csak az Sqoop parancsokat kell használni, mert csatlakozói tudják, hogyan kell kölcsönhatásba lépni a strukturált adatforrásokkal, és hogyan lehet adatokat lekérni belőlük. A streaming adatok, például a Twitteren létrehozott tweetek vagy a webszerver naplófájljai betöltéséhez Flume-ot kell használni. A Flume ügynökök a streaming adatok beolvasására szolgálnak. A HDFS saját beépített shell parancsokkal rendelkezik az adatok tárolására. A HDFS nem tudja importálni a streaming adatokat