sql >> Database >  >> NoSQL >> HBase

HBase en Hive – Samen beter

Deze blogpost is gepubliceerd op Hortonworks.com vóór de fusie met Cloudera. Sommige links, bronnen of verwijzingen zijn mogelijk niet langer nauwkeurig.

Computers worden slimmer en wij niet.

–Tim Berners Lee, webontwikkelaar

Google, Amazon en Netflix hebben ons geconditioneerd. Als consumenten verwachten we intelligente applicaties die elke beweging voorspellen, suggereren en anticiperen. We willen dat ze de miljoenen mogelijkheden doornemen en er slechts een paar voorstellen die bij onze behoeften passen. We willen applicaties die ons meenemen op een persoonlijke reis door een wereld van eindeloze mogelijkheden.

Deze gepersonaliseerde reizen vereisen systemen om enorme datavolumes in een acceptabele tijd op te slaan en te begrijpen. Dit is de sterke kant van Hadoop sinds de eerste dag.

Om de reis te realiseren, moeten applicaties ook rechtstreeks worden geïntegreerd met diepgaande analyses. Dit blijft een uitdaging, aangezien de meeste operationele systemen buiten Hadoop draaien, waardoor operationele gegevens en analyses in afzonderlijke silo's worden geplaatst.

Technologieën zoals Apache Hadoop YARN en Apache Slider beginnen deze silo's af te breken. YARN geeft Hadoop-resourceisolatiecontroles die het mogelijk maken om applicatiegegevens ter plaatse diepgaand te analyseren en antwoorden te geven binnen een acceptabel tijdsbestek. En Apache Slider maakt het gemakkelijk om langlopende operationele systemen in Hadoop te implementeren.

YARN is het architecturale centrum van Hadoop dat meerdere dataverwerkingsengines, zoals interactieve SQL, realtime streaming, datawetenschap en batchverwerking, in staat stelt om gegevens te verwerken die op één enkel platform zijn opgeslagen, waardoor een geheel nieuwe benadering van analyse wordt ontgrendeld. Dit zorgt voor een naadloze integratie van operationele en analytische systemen en een basis waarop de onderneming een moderne data-architectuur (MDA) kan bouwen.

De stand van de techniek in Hadoop

Het is tegenwoordig mogelijk om operationeel en analytisch samen te voegen in Hadoop, en in feite zien we veel van onze klanten dat doen.

De stukken die je nodig hebt staan ​​al in Hadoop:

  • Apache HBase is de NoSQL-database voor Hadoop en is geweldig in snelle updates en lage latentiegegevenstoegang.
  • Apache Phoenix (ontworpen door Salesforce) is een SQL-skin voor gegevens in HBase. Phoenix doet al onderzoek naar integratie met transactiemanagers zoals Tephra (van Cask).
  • Apache Hive is de de-facto SQL-engine voor Hadoop die de diepste SQL-analyses biedt en zowel batch- als interactieve querypatronen ondersteunt. Zie onze recente Stinger.Next post voor ontwikkelingen zoals Hive LLAP.

We zien dat onze klanten deze onderdelen tegenwoordig gebruiken om applicaties te bouwen met diepgaande analyses. Een veel voorkomend patroon dat we zien is bijvoorbeeld:

  • HBase gebruiken als de online operationele gegevensopslag voor snelle updates van hot data zoals de huidige partitie voor het uur, de dag enz.
  • Operationele query's rechtstreeks uitvoeren tegen HBase met behulp van Apache Phoenix.
  • Verouderingsgegevens in HBase naar Hive-tabellen met standaard ETL-patronen.
  • Het uitvoeren van diepgaande SQL-analyses met Hive

Dit werkt, maar het creëert een aantal complexiteiten voor ontwikkelaars. Bijvoorbeeld:

  • Welke SQL-interface gebruik ik en wanneer? Gebruik ik Hive die diepe SQL maar een lage TPS biedt? Of gebruik ik Phoenix met hoge TPS en basis SQL? Of gebruik ik beide?
  • Als ik beide gebruik, hoe deel ik dan gegevens tussen Hive en HBase?
  • Hoe stem ik mijn cluster af zodat ik HBase en Hive met succes samen kan lokaliseren terwijl ik aan mijn SLA's voldoe?

Deze vragen suggereren dat een diepere integratie nodig is om het bouwen van applicaties te vereenvoudigen met diepgaande analyses op Hadoop.

HBase en Hive:beter samen

Welke mogelijkheden zijn er voor diepere integratie? Momenteel stellen klanten oplossingen samen die gebruikmaken van HBase, Phoenix, Hive enz. om een ​​op maat gemaakt closed-loop-systeem te bouwen voor operationele gegevens en SQL-analyses. We zijn van mening dat er een mogelijkheid is om kant-en-klare integratie te bieden met gebruiksgemak en extra mogelijkheden zoals transacties, cross-datacenter-failover enz.

Hive, HBase en Phoenix hebben allemaal een zeer actieve gemeenschap van ontwikkelaars en worden in talloze organisaties in productie gebruikt. Dit zijn solide, bewezen operationele mogelijkheden die de basis en toekomst kunnen vormen van transactieverwerking op Hadoop.

Dus, met dezelfde aanpak als het succesvolle Stinger Initiative, wil Hortonworks verder investeren in deze kernprojecten en momentum opbouwen in plaats van ze op te geven en opnieuw te beginnen. We zijn van plan te investeren in verbeteringen die een geïntegreerde operationele en analytische ervaring bevorderen via een nauw geïntegreerde Hive en HBase. Dit adresseert echte en interessante use-cases op een manier die investeringen behoudt en echte waarde voor klanten creëert.

We zien vier belangrijke ontwikkelingsgebieden om de visie van intelligente toepassingen te helpen realiseren:

1. Een uniforme SQL-laag met Hive

Ontwikkelaars die SQL-applicaties bouwen, hoeven niet te kiezen tussen verschillende SQL-oplossingen, elk met hun eigen sterke en zwakke punten. We stellen ons een uniforme SQL-laag voor, mogelijk gemaakt door Hive's ondersteuning voor SQL:2011, die transparant de juiste engine gebruikt op basis van het querytoegangspatroon.

Deze combinatie zorgt voor één SQL-dialect en één connector. Gegevensarchitecten en DBA's kunnen bepalen waar gegevens moeten worden opgeslagen op basis van gebruikspatronen zonder gebruikersapplicaties te belasten met de noodzaak om verbinding te maken met meerdere systemen.

2. HBase verbeteren als operationele winkel

HBase is snel volwassen aan het worden als een operationele winkel en zal in staat zijn om steeds meer veeleisende workloads aan te kunnen. In het afgelopen jaar heeft HBase een SQL-interface, secundaire indexering en hoge beschikbaarheid toegevoegd. Deze functies zullen blijven rijpen en daarnaast zal HBase extra enterprise-grade functies toevoegen, zoals multi-table, cross-datacenter transacties en meer.

Projecten zoals Omid (Yahoo), Tephra (Cask), Trafodion (HP) enz. bieden verschillende manieren om transacties naar HBase te brengen. Facebook heeft HydraBase ontwikkeld, waarmee transacties tussen datacenters mogelijk zijn. Facebook heeft HydraBase op grote schaal getest en is bezig om het beschikbaar te maken in open source HBase (zie HBASE-12259). Naarmate deze systemen volwassener worden, zal HBase in staat zijn om de meest veeleisende workloads aan te kunnen.

3. Gedeelde metadatacatalogus en transactiebeheer

Gegevens die in HBase zijn gemaakt, moeten automatisch zichtbaar zijn in Hive en omgekeerd. Deze mogelijkheid maakt het delen van gegevens tussen online en analytisch volledig triviaal. Dankzij een gedeelde transactiemanager kunnen de nieuwe ACID-functie van Hive en HBase-transacties met meerdere tabellen naadloos samenwerken.

4. YARN-ondersteuning voor gemengde werkbelasting

Tegenwoordig implementeren klanten HBase en Hive doorgaans in afzonderlijke clusters. Het ontwikkelen van een closed-loop analysesysteem vereist een effectieve combinatie van operationele en analytische workloads op een multi-tenant manier. Met YARN kunnen we effectief een enkel systeem creëren door gebruik te maken van primitieven voor bronisolatie en werkbelastingbeheer in YARN om verschillende vormen van toegang tot gegevens te ondersteunen. Slider maakt hier gebruik van wanneer het HBase in YARN implementeert, terwijl Hive LLAP &Tez native YARN-applicaties zijn, waardoor het proces van het uitvoeren van een gesloten analytisch systeem volgens een voorspelbare SLA wordt vereenvoudigd.

Conclusie

Ondernemingen gebruiken reeds bestaande technologieën die beschikbaar zijn in HDP, zoals Apache HBase, Apache Hive, Apache Phoenix, enz. om snelle updates van huidige gegevens en analyses over een groot aantal gegevenssets, allemaal opgeslagen in HDFS, af te handelen om een ​​gesloten analysesysteem tot stand te brengen. . We hopen dezelfde integratiepatronen te gebruiken om klanten een naadloze ervaring te bieden door Apache HBase en Apache Hive beter te maken - beter samen, in plaats van nieuwe technologieën te introduceren die gebruikers kunnen begrijpen en gebruiken.


  1. MongoDB $binarySize

  2. Hoe de logboekregistratie van mongoDB Java-stuurprogramma's uit te schakelen?

  3. MongoDB bevraagt ​​meerdere collecties tegelijk

  4. Redis Out of Memory Exceptions, maar heb nog steeds voldoende geheugen