sql >> Databáze >  >> NoSQL >> HBase

Cloudera Impala:Dotazy v reálném čase v Apache Hadoop, ve skutečnosti

Po dlouhém období intenzivního inženýrského úsilí a zpětné vazby od uživatelů jsme velmi potěšeni a hrdí, že můžeme oznámit projekt Cloudera Impala. Tato technologie je pro uživatele Hadoopu revoluční a toto tvrzení nebereme na lehkou váhu.

Když Google v roce 2010 zveřejnil svůj dokument Dremel, byli jsme stejně jako zbytek komunity inspirováni technickou vizí přinést do Apache Hadoop možnosti ad hoc dotazů v reálném čase a doplňovat tradiční dávkové zpracování MapReduce. Dnes oznamujeme plně funkční kódovou základnu s otevřeným zdrojovým kódem, která naplňuje tuto vizi – a věříme, že i trochu víc – kterou nazýváme Cloudera Impala. Binární soubor Impala je nyní k dispozici ve veřejné beta verzi, ale pokud byste raději testovali Impalu prostřednictvím předpečeného virtuálního počítače, máme pro vás také jeden z nich. Právě teď si můžete prohlédnout zdrojový kód a testovací kabel na Github.

Impala zvyšuje laťku výkonu dotazů při zachování známého uživatelského prostředí. S Impala můžete dotazovat data, ať už jsou uložena v HDFS nebo Apache HBase – včetně funkcí SELECT, JOIN a agregace – v reálném čase. Kromě toho používá stejná metadata, syntaxi SQL (Hive SQL), ovladač ODBC a uživatelské rozhraní (Hue Beeswax) jako Apache Hive, což poskytuje známou a jednotnou platformu pro dávkově orientované dotazy nebo dotazy v reálném čase. (Z toho důvodu mohou uživatelé Hive používat Impalu s malou režií na nastavení.) První pokles beta zahrnuje podporu pro textové soubory a SequenceFiles; SequenceFiles lze komprimovat jako Snappy, GZIP a BZIP (pro maximální výkon se doporučuje Snappy). Podpora dalších formátů včetně Avro, RCFile, textových souborů LZO a sloupcového formátu Parquet je plánována pro pokles produkce.

Aby se zabránilo latenci, Impala obchází MapReduce a přímo přistupuje k datům prostřednictvím specializovaného distribuovaného dotazovacího stroje, který je velmi podobný těm, které lze nalézt v komerčních paralelních RDBMS. Výsledkem je řádově rychlejší výkon než Hive v závislosti na typu dotazu a konfigurace. (Další podrobnosti viz FAQ níže.) Všimněte si, že toto zlepšení výkonu bylo potvrzeno několika velkými společnostmi, které již několik měsíců testují Impala na reálném pracovním zatížení.

Přehled architektury na vysoké úrovni je níže:

Tento přístup má mnoho výhod oproti alternativním přístupům k dotazování na data Hadoop, včetně::

  • Díky místnímu zpracování na datových uzlech se vyhneme úzkým místům sítě.
  • Lze použít jediné, otevřené a jednotné úložiště metadat.
  • Nákladný převod datového formátu je zbytečný, a proto nevznikají žádné režijní náklady.
  • Všechna data lze okamžitě dotazovat, bez zpoždění pro ETL.
  • Veškerý hardware se používá pro dotazy Impala i pro MapReduce.
  • K škálování je potřeba pouze jeden fond strojů.

Doporučujeme vám přečíst si dokumentaci pro další technické podrobnosti.

Nakonec bychom rádi odpověděli na některé otázky, o kterých předpokládáme, že budou populární:

Je Impala open source?
Ano, Impala je 100% open source (licence Apache). Kód si můžete prohlédnout na Githubu ještě dnes.

Jak se Impala liší od Dremel?
První a hlavní rozdíl je v tom, že Impala je open source a je k dispozici všem, zatímco Dremel je majetkem společnosti Google.

Technicky Dremel dosahuje interaktivních časů odezvy u velmi velkých souborů dat pomocí dvou technik:

  • Nový sloupcový formát úložiště pro vnořená relační data/data s vnořenými strukturami
  • Distribuované škálovatelné agregační algoritmy, které umožňují paralelní výpočet výsledků dotazu na tisících počítačů.

Ten je vypůjčen z technik vyvinutých pro paralelní DBMS, které také inspirovaly vytvoření Impala. Na rozdíl od Dremelu, jak je popsán v dokumentu z roku 2010, který dokázal zpracovat pouze dotazy s jednou tabulkou, Impala již podporuje úplnou sadu operátorů spojení, které jsou jedním z faktorů, díky nimž je SQL tak populární.

Aby bylo možné plně využít výhody výkonu, které Dremel předvedl, bude mít Hadoop brzy účinný sloupcový binární formát úložiště nazvaný Parquet. Ale na rozdíl od Dremel, Impala podporuje řadu oblíbených formátů souborů. To umožňuje uživatelům spouštět Impala na svých stávajících datech, aniž by je museli „načítat“ nebo transformovat. Umožňuje také uživatelům rozhodnout se, zda chtějí optimalizovat pro flexibilitu nebo pouze čistý výkon.

Abych to shrnul, Impala plus Parquet dosáhne výkonu dotazů popsaného v článku Dremel, ale předčí to, co je tam popsáno ve funkcionalitě SQL.

O kolik rychlejší jsou dotazy Impala než dotazy Hive?
Přesné množství zlepšení výkonu do značné míry závisí na řadě faktorů:

  • Konfigurace hardwaru:Impala je obecně schopna plně využít hardwarové zdroje a specificky generuje menší zátěž CPU než Hive, což se často promítá do vyšší pozorované agregované I/O šířky pásma než u Hive. Impala samozřejmě nemůže jít rychleji, než dovoluje hardware, takže jakékoli hardwarové překážky omezí pozorované zrychlení. U čistě I/O vázaných dotazů obvykle zaznamenáváme zvýšení výkonu v rozsahu 3-4x.
  • Složitost dotazu:Dotazy, které vyžadují více fází MapReduce v Hive nebo vyžadují spojení na straně redukce, zaznamenají vyšší zrychlení než například jednoduché agregační dotazy s jednou tabulkou. Zdá se, že u dotazů s alespoň jedním spojením jsme zvýšili výkon 7–45X.
  • Dostupnost hlavní paměti jako mezipaměti pro data tabulky:Pokud data, ke kterým se přistupuje prostřednictvím dotazu, pocházejí z mezipaměti, zrychlení bude dramatičtější díky vynikající účinnosti Impala. V těchto scénářích jsme zaznamenali 20- až 90-násobné zrychlení oproti Hive i u jednoduchých agregačních dotazů.

Je Impala náhradou za MapReduce nebo Hive – nebo za tradiční infrastrukturu datových skladů?
Ne. I nadále bude existovat mnoho životaschopných případů použití pro MapReduce a Hive (například pro dlouhotrvající úlohy transformace dat), stejně jako pro tradiční rámce datových skladů (například pro komplexní analýzy omezených, strukturovaných datových sad). Impala je doplňkem těchto přístupů a podporuje případy použití, kdy uživatelé potřebují interagovat s velmi velkými datovými sadami napříč všemi datovými sily, aby rychle získali zaměřené sady výsledků.

Má vydání Impala Beta nějaká technická omezení?
Jak již bylo zmíněno dříve, podporované formáty souborů v první verzi beta zahrnují textové soubory a SequenceFiles, přičemž mnoho dalších formátů bude podporováno v nadcházející produkční verzi. Kromě toho se v současnosti všechna spojení provádějí v paměťovém prostoru, který není větší, než je prostor nejmenšího uzlu v klastru; ve výrobě se spojení budou provádět v agregované paměti. A konečně, v tuto chvíli nejsou možné žádné UDF.

Jaké jsou technické požadavky na vydání Impala Beta?
Budete muset mít nainstalovaný CDH4.1 na RHEL/CentOS 6.2. Důrazně doporučujeme použití Cloudera Manager (Free nebo Enterprise Edition) k nasazení a správě Impala, protože se automaticky stará o distribuované nasazení a detaily monitorování.

Jaké jsou zásady podpory pro vydání Impala Beta?
Pokud jste stávajícím zákazníkem Cloudera s chybou, můžete získat tiket zákaznické podpory a my se pokusíme problém vyřešit s maximálním úsilím. Pokud nejste stávajícím zákazníkem Cloudery, můžete použít naši veřejnou instanci JIRA nebo mailing list impala-user, který bude monitorován zaměstnanci Cloudera.

Kdy bude Impala obecně dostupná pro produkční použití?
Pokles produkce je plánován na první čtvrtletí roku 2013. Zákazníci mohou v té době získat komerční podporu ve formě předplatného Cloudera Enterprise RTQ.

Doufáme, že využijete příležitosti prohlédnout si zdrojový kód Impala, prozkoumat beta verzi, stáhnout a nainstalovat VM nebo jakoukoli kombinaci výše uvedeného. Vaše zpětná vazba je ve všech případech oceňována; potřebujeme vaši pomoc, aby byla Impala ještě lepší.

Další aktualizace o Impale vám přineseme, až se budeme přibližovat produkční dostupnosti. (Aktualizace:Přečtěte si o Impala 1.0.)

Zdroje Impala:
– Zdrojový kód Impala
– Stažení Impala (Beta verze a VM)
– Dokumentace Impala
– Veřejná JIRA
– Seznam adresátů Impala
– Bezplatná Impala školení (Screencast)

(Přidáno 30.10.2012) Články třetích stran o Impala:
– GigaOm: Dotaz v reálném čase pro Hadoop demokratizuje přístup k analýze velkých dat (22. října 2012)
– Kabelové: Člověk vypadl z Googlu, přestavěl přísně tajný dotazovací stroj (24. října 2012)
– InformationWeek: Cloudera debutuje v reálném čase Hadoop Query (24. října 2012)
– GigaOm:Cloudera dělá z SQL prvotřídního občana na Hadoop (24. října 2012)
– ZDNet:Cloudera's Impala přináší Hadoop do SQL a BI (25. října 2012)
– Drát:Profil Marcela Kornackera (29. října 2012)
– Dr. Dobbs: Cloudera Impala – Zpracování petabajtů rychlostí Myšlenka (29. října 2012)

Marcel Kornacker je architektem Impala. Před nástupem do Cloudery byl hlavním vývojářem dotazovacího nástroje projektu Google F1.

Justin Erickson je produktovým manažerem společnosti Impala.


  1. Jak redis odděluje instanci více uživatelů běžící na stejném serveru?

  2. Příkaz Redis pro získání všech dostupných klíčů?

  3. Jak vložím HTML do Mongodb?

  4. Mongoose, Vyberte konkrétní pole pomocí funkce Najít