Výukový program pro Sqoop: Co je to Apache Sqoop? Architektura & Příklad

Obsah:

Anonim

Co je SQOOP v Hadoopu?

Apache SQOOP (SQL-to-Hadoop) je nástroj určený k podpoře hromadného exportu a importu dat do HDFS ze skladů strukturovaných dat, jako jsou relační databáze, podnikové datové sklady a systémy NoSQL. Jedná se o nástroj pro migraci dat založený na architektuře konektorů, který podporuje pluginy pro zajištění připojení k novým externím systémům.

Příkladem použití Hadoop Sqoop je podnik, který provozuje noční import Sqoop pro načtení denních dat z produkčního transakčního RDBMS do datového skladu Hive pro další analýzu.

Dále v tomto výukovém programu Apache Sqoop se dozvíme o architektuře Apache Sqoop.

Sqoop architektura

Všechny stávající systémy pro správu databází jsou navrženy s ohledem na standard SQL. Každý DBMS se však do určité míry liší dialektem. Tento rozdíl tedy představuje výzvu, pokud jde o datové přenosy napříč systémy. Sqoop konektory jsou komponenty, které pomáhají tyto výzvy překonat.

Přenos dat mezi Sqoop Hadoop a externím úložným systémem je možný pomocí konektorů Sqoop.

Sqoop má konektory pro práci s řadou populárních relačních databází, včetně MySQL, PostgreSQL, Oracle, SQL Server a DB2. Každý z těchto konektorů ví, jak komunikovat s přidruženým DBMS. K dispozici je také obecný konektor JDBC pro připojení k jakékoli databázi, která podporuje protokol JDBC Java. Data Sqoop Big navíc poskytují optimalizované konektory MySQL a PostgreSQL, které k efektivnímu hromadnému přenosu používají API specifická pro databázi.

Sqoop architektura

Kromě toho má Sqoop ve velkých datech různé konektory třetích stran pro datové sklady, od podnikových datových skladů (včetně Netezza, Teradata a Oracle) až po obchody NoSQL (jako je Couchbase). Tyto konektory však nejsou dodávány s balíčkem Sqoop; ty je třeba stáhnout samostatně a lze je snadno přidat do stávající instalace Sqoop.

Proč potřebujeme Sqoop?

Analytické zpracování pomocí Hadoop vyžaduje načítání obrovského množství dat z různých zdrojů do klastrů Hadoop. Tento proces hromadného načítání dat do Hadoopu z heterogenních zdrojů a jejich následného zpracování přichází s určitou sadou výzev. Udržování a zajišťování konzistence dat a zajišťování efektivního využívání zdrojů jsou některé faktory, které je třeba zvážit před výběrem správného přístupu k datovému zatížení.

Hlavní problémy:

1. Načtení dat pomocí skriptů

Tradiční přístup k načítání dat pomocí skriptů není vhodný pro hromadné načítání dat do Hadoopu; tento přístup je neefektivní a velmi časově náročný.

2. Přímý přístup k externím datům prostřednictvím aplikace Map-Reduce

Poskytování přímého přístupu k datům uloženým na externích systémech (bez načítání do Hadoop) pro aplikace s redukcí mapy tyto aplikace komplikuje. Tento přístup tedy není proveditelný.

3. Kromě možnosti pracovat s obrovskými daty může Hadoop pracovat s daty v několika různých formách. Aby bylo možné načíst taková heterogenní data do Hadoopu, byly vyvinuty různé nástroje. Sqoop a Flume jsou dva takové nástroje pro načítání dat.

Dále v tomto výukovém programu Sqoop s příklady se dozvíme o rozdílech mezi Sqoop, Flume a HDFS.

Sqoop vs Flume vs HDFS v Hadoop

Sqoop Žlab HDFS
Sqoop se používá pro import dat ze zdrojů strukturovaných dat, jako je RDBMS. Flume se používá pro přesun hromadně streamovaných dat do HDFS. HDFS je distribuovaný souborový systém používaný ekosystémem Hadoop k ukládání dat.
Sqoop má architekturu založenou na konektorech. Konektory vědí, jak se připojit k příslušnému zdroji dat a načíst data. Flume má architekturu založenou na agentech. Zde je napsán kód (který se nazývá „agent“), který se stará o načítání dat. HDFS má distribuovanou architekturu, kde jsou data distribuována do více datových uzlů.
HDFS je cíl pro import dat pomocí Sqoop. Tok dat do HDFS nulovým nebo více kanály. HDFS je konečným cílem pro ukládání dat.
Načtení dat Sqoop není řízeno událostmi. Načítání dat žlabů může být řízeno událostí. HDFS pouze ukládá data, která mu byla poskytnuta, jakýmkoli způsobem.
Aby bylo možné importovat data ze zdrojů strukturovaných dat, je nutné použít pouze příkazy Sqoop, protože jeho konektory vědí, jak komunikovat se zdroji strukturovaných dat a načítat z nich data. Chcete-li načíst streamovaná data, jako jsou tweety generované na Twitteru nebo soubory protokolu webového serveru, měl by se použít Flume. Agenti žlabů jsou vytvořeni pro načítání streamovaných dat. HDFS má vlastní vestavěné příkazy prostředí pro ukládání dat do něj. HDFS nemůže importovat streamovaná data