Na een lange periode van intensieve technische inspanningen en gebruikersfeedback, zijn we zeer verheugd en trots om het Cloudera Impala-project aan te kondigen. Deze technologie is revolutionair voor Hadoop-gebruikers en we nemen die claim niet licht op.
Toen Google in 2010 zijn Dremel-paper publiceerde, waren we net zo geïnspireerd als de rest van de gemeenschap door de technische visie om Apache Hadoop realtime, ad-hocquerymogelijkheden te bieden als aanvulling op de traditionele MapReduce-batchverwerking. Vandaag kondigen we een volledig functionele, open source codebase aan die die visie waarmaakt - en, naar onze mening, een beetje meer - die we Cloudera Impala noemen. Een Impala-binary is nu beschikbaar in openbare bètavorm, maar als je Impala liever wilt testen via een voorgebakken VM, hebben we er ook een voor je. Je kunt nu ook de broncode en het testharnas bekijken op Github.
Impala legt de lat hoger voor queryprestaties met behoud van een vertrouwde gebruikerservaring. Met Impala kunt u gegevens, ongeacht of deze zijn opgeslagen in HDFS of Apache HBase - inclusief SELECT-, JOIN- en aggregatiefuncties - in realtime opvragen. Bovendien gebruikt het dezelfde metadata, SQL-syntaxis (Hive SQL), ODBC-stuurprogramma en gebruikersinterface (Hue Beeswax) als Apache Hive, wat een vertrouwd en uniform platform biedt voor batch-georiënteerde of real-time queries. (Om die reden kunnen Hive-gebruikers Impala gebruiken met weinig setup-overhead.) De eerste bètaversie omvat ondersteuning voor tekstbestanden en SequenceFiles; SequenceFiles kunnen worden gecomprimeerd als Snappy, GZIP en BZIP (met Snappy aanbevolen voor maximale prestaties). Ondersteuning voor extra formaten, waaronder Avro, RCFile, LZO-tekstbestanden en de Parquet-kolomindeling is gepland voor de productiedaling.
Om latentie te voorkomen, omzeilt Impala MapReduce om rechtstreeks toegang te krijgen tot de gegevens via een gespecialiseerde gedistribueerde query-engine die erg lijkt op die in commerciële parallelle RDBMS'en. Het resultaat is een orde van grootte snellere prestaties dan Hive, afhankelijk van het type query en configuratie. (Zie de veelgestelde vragen hieronder voor meer details.) Merk op dat deze prestatieverbetering is bevestigd door verschillende grote bedrijven die Impala nu al enkele maanden testen op real-world workloads.
Hieronder ziet u een architectonisch aanzicht op hoog niveau:
Deze benadering heeft veel voordelen ten opzichte van alternatieve benaderingen voor het opvragen van Hadoop-gegevens, waaronder::
- Dankzij lokale verwerking op dataknooppunten worden netwerkknelpunten vermeden.
- Er kan één enkele, open en uniforme metagegevensopslag worden gebruikt.
- Dure conversie van gegevensformaten is niet nodig en er is dus geen overhead.
- Alle gegevens kunnen onmiddellijk worden opgevraagd, zonder vertragingen voor ETL.
- Alle hardware wordt gebruikt voor zowel Impala-query's als voor MapReduce.
- Er is slechts één machinepool nodig om te schalen.
We raden u aan de documentatie te lezen voor meer technische details.
Ten slotte willen we enkele vragen beantwoorden waarvan we verwachten dat ze populair zullen zijn:
Is Impala open source?
Ja, Impala is 100% open source (Apache-licentie). Je kunt de code vandaag nog zelf bekijken op Github.
In welk opzicht is Impala anders dan Dremel?
Het eerste en belangrijkste verschil is dat Impala open source is en voor iedereen beschikbaar is, terwijl Dremel eigendom is van Google.
Technisch behaalt Dremel interactieve responstijden over zeer grote datasets door het gebruik van twee technieken:
- Een nieuw zuilvormig opslagformaat voor geneste relationele gegevens/gegevens met geneste structuren
- Gedistribueerde schaalbare aggregatie-algoritmen, waarmee de resultaten van een zoekopdracht parallel op duizenden machines kunnen worden berekend.
Dit laatste is ontleend aan technieken die zijn ontwikkeld voor parallelle DBMS'en, die ook de inspiratie vormden voor de creatie van Impala. In tegenstelling tot Dremel, zoals beschreven in het artikel uit 2010, dat alleen query's met één tabel kon verwerken, ondersteunt Impala al de volledige set join-operators die een van de factoren zijn die SQL zo populair maken.
Om de volledige prestatievoordelen van Dremel te realiseren, zal Hadoop binnenkort een efficiënt zuilvormig binair opslagformaat hebben, genaamd Parquet. Maar in tegenstelling tot Dremel ondersteunt Impala een reeks populaire bestandsindelingen. Hierdoor kunnen gebruikers Impala uitvoeren op hun bestaande gegevens zonder deze te hoeven "laden" of transformeren. Het laat gebruikers ook beslissen of ze willen optimaliseren voor flexibiliteit of alleen voor pure prestaties.
Samenvattend zal Impala plus Parquet de queryprestaties behalen die worden beschreven in de Dremel-paper, maar overtreffen wat daar wordt beschreven in SQL-functionaliteit.
Hoeveel sneller zijn Impala-query's dan die van Hive eigenlijk?
De precieze mate van prestatieverbetering is sterk afhankelijk van een aantal factoren:
- Hardwareconfiguratie:Impala kan over het algemeen volledig profiteren van hardwarebronnen en genereert specifiek minder CPU-belasting dan Hive, wat zich vaak vertaalt in een hogere waargenomen totale I/O-bandbreedte dan bij Hive. Impala kan natuurlijk niet sneller gaan dan de hardware toelaat, dus eventuele hardware-knelpunten zullen de waargenomen versnelling beperken. Voor puur I/O-gebonden query's zien we doorgaans prestatieverbeteringen in het bereik van 3-4x.
- Complexiteit van de query:query's die meerdere MapReduce-fasen in Hive vereisen of die joins aan de zijkant vereisen, zullen een hogere snelheid hebben dan, laten we zeggen, eenvoudige aggregatiequery's met één tabel. Voor zoekopdrachten met ten minste één join hebben we een prestatieverbetering van 7-45X.
- Beschikbaarheid van het hoofdgeheugen als cache voor tabelgegevens:als de gegevens die via de query zijn geopend, uit de cache komen, zal de snelheid groter zijn dankzij de superieure efficiëntie van Impala. In die scenario's hebben we versnellingen van 20x-90x over Hive gezien, zelfs bij eenvoudige aggregatiequery's.
Is Impala een vervanging voor MapReduce of Hive - of voor de traditionele datawarehouse-infrastructuur, wat dat betreft?
Nee. Er zullen veel levensvatbare use-cases blijven voor MapReduce en Hive (bijvoorbeeld voor langdurige datatransformatie-workloads) en traditionele datawarehouse-frameworks (bijvoorbeeld voor complexe analyses op beperkte, gestructureerde datasets). Impala is een aanvulling op die benaderingen en ondersteunt gebruiksscenario's waarbij gebruikers moeten communiceren met zeer grote datasets, over alle datasilo's heen, om snel gerichte resultatensets te krijgen.
Heeft de Impala Beta-release technische beperkingen?
Zoals eerder vermeld, omvatten de ondersteunde bestandsindelingen in de eerste bètaversie tekstbestanden en SequenceFiles, en vele andere indelingen die in de aanstaande productieversie worden ondersteund. Verder worden momenteel alle joins gedaan in een geheugenruimte die niet groter is dan die van het kleinste knooppunt in het cluster; in productie zullen joins worden gedaan in het totale geheugen. Ten slotte zijn er op dit moment geen UDF's mogelijk.
Wat zijn de technische vereisten voor de Impala Beta-release?
Je moet CDH4.1 geïnstalleerd hebben op RHEL/CentOS 6.2. We raden het gebruik van Cloudera Manager (gratis of Enterprise Edition) ten zeerste aan om Impala te implementeren en te beheren, omdat het automatisch zorgt voor gedistribueerde implementatie en bewakingsdetails.
Wat is het ondersteuningsbeleid voor de Impala Beta-release?
Als u een bestaande Cloudera-klant bent met een bug, kunt u een Customer Support-ticket indienen en we zullen proberen dit zo goed mogelijk op te lossen. Als u geen bestaande Cloudera-klant bent, kunt u onze openbare JIRA-instantie of de mailinglijst voor impala-gebruikers gebruiken, die wordt gecontroleerd door Cloudera-medewerkers.
Wanneer zal Impala algemeen beschikbaar zijn voor productiegebruik?
Een productiedaling is gepland voor het eerste kwartaal van 2013. Klanten kunnen op dat moment commerciële ondersteuning krijgen in de vorm van een Cloudera Enterprise RTQ-abonnement.
We hopen dat u van de gelegenheid gebruik maakt om de Impala-broncode te bekijken, de bètaversie te verkennen, de VM te downloaden en te installeren, of een combinatie van het bovenstaande. Uw feedback wordt in alle gevallen op prijs gesteld; we hebben jouw hulp nodig om Impala nog beter te maken.
We zullen je meer updates geven over Impala naarmate we dichter bij de productiebeschikbaarheid komen. (Update:lees over Impala 1.0.)
Impala-bronnen:
– Impala-broncode
– Impala-downloads (bèta-release en VM)
– Impala-documentatie
– Openbare JIRA
– Impala-mailinglijst
– Gratis Impala training (screencast)
(Toegevoegd 30/10/2012) Artikelen van derden over Impala:
– GigaOm: Realtime query voor Hadoop democratiseert toegang tot big data-analyses (22 oktober 2012)
– Wired: Man stopt Google, bouwt topgeheime querymachine opnieuw op (24 oktober 2012)
– InformationWeek: Cloudera introduceert realtime Hadoop-query (24 oktober 2012)
– GigaOm:Cloudera maakt SQL een eersteklas burger op Hadoop (24 oktober 2012)
– ZDNet:Cloudera's Impala brengt Hadoop naar SQL en BI (25 oktober 2012)
– Wired:Marcel Kornacker Profile (29 oktober 2012)
– Dr. Dobbs: Cloudera Impala – Petabytes verwerken met de snelheid van Gedachte (29 oktober 2012)
Marcel Kornacker is de architect van Impala. Voordat hij bij Cloudera kwam, was hij de hoofdontwikkelaar van de query-engine van het F1-project van Google.
Justin Erickson is de productmanager voor Impala.