sql >> Databasteknik >  >> NoSQL >> HBase

HBase och Hive – Bättre tillsammans

Det här blogginlägget publicerades på Hortonworks.com före sammanslagningen med Cloudera. Vissa länkar, resurser eller referenser kanske inte längre är korrekta.

Datorer blir smartare och det gör vi inte.

–Tim Berners Lee, webbutvecklare

Google, Amazon och Netflix har betingat oss. Som konsumenter förväntar vi oss intelligenta applikationer som förutsäger, föreslår och förutser alla våra rörelser. Vi vill att de ska sålla bland miljontals möjligheter och föreslå bara några som passar våra behov. Vi vill ha applikationer som tar oss med på en personlig resa genom en värld av oändliga möjligheter.

Dessa personliga resor kräver system för att lagra och förstå enorma datavolymer på en acceptabel tid. Detta har varit Hadoops starka sida sedan dag ett.

Att leverera resan kräver också att applikationer integreras direkt med djupanalys. Detta är fortfarande en utmaning eftersom de flesta operativa system körs utanför Hadoop och placerar operativa data och analyser i separata silor.

Teknologier som Apache Hadoop YARN och Apache Slider börjar bryta ner dessa silos. YARN ger Hadoop resursisoleringskontroller som gör det möjligt att djupgående analysera applikationsdata på plats samtidigt som de ger svar inom en acceptabel tidsram. Och Apache Slider gör det enkelt att distribuera långvariga operativa system i Hadoop.

YARN är Hadoops arkitektoniska centrum som tillåter flera databearbetningsmotorer som interaktiv SQL, realtidsströmning, datavetenskap och batchbearbetning att hantera data som lagras på en enda plattform, vilket låser upp ett helt nytt tillvägagångssätt för analys. Detta ger en sömlös integration av operativa och analytiska system och en grund på vilken företaget kan bygga ut en modern dataarkitektur (MDA).

The State of the Art i Hadoop

Det är möjligt att kombinera drift och analys i Hadoop idag, och faktiskt ser vi många av våra kunder göra det.

Delarna du behöver finns redan i Hadoop:

  • Apache HBase är NoSQL-databasen för Hadoop och är bra på snabba uppdateringar och dataåtkomst med låg latens.
  • Apache Phoenix (pionjärer av Salesforce) är ett SQL-skal för data i HBase. Phoenix undersöker redan integration med transaktionshanterare som Tephra (från Cask).
  • Apache Hive är den de facto SQL-motorn för Hadoop som tillhandahåller den djupaste SQL-analysen och stöder både batch- och interaktiva frågemönster. Se vårt senaste Stinger.Next-inlägg för framsteg som Hive LLAP.

Vi ser att våra kunder använder dessa delar idag för att bygga applikationer med djupanalys, till exempel ett mycket vanligt mönster som vi ser inkluderar:

  • Användning av HBase som online-driftdatalager för snabba uppdateringar av heta data som aktuell partition för timme, dag etc.
  • Utför operativa frågor direkt mot HBase med Apache Phoenix.
  • Åldrande data i HBase till Hive-tabeller med standard ETL-mönster.
  • Utför djupgående SQL-analyser med Hive

Detta fungerar men skapar ett antal komplexiteter för utvecklare. Till exempel:

  • Vilket SQL-gränssnitt använder jag och när? Använder jag Hive som erbjuder djup SQL men låg TPS? Eller använder jag Phoenix med hög TPS och grundläggande SQL? Eller använder jag båda?
  • Om jag använder båda, hur delar jag data mellan Hive och HBase?
  • Hur ställer jag in mitt kluster så att jag kan samlokalisera HBase och Hive samtidigt som jag möter mina SLA?

Dessa frågor tyder på att djupare integration behövs för att förenkla att bygga applikationer med djupanalys på Hadoop.

HBase and Hive:Better Together

Vilka möjligheter finns för djupare integration? För närvarande håller kunder på att sammanställa lösningar som utnyttjar HBase, Phoenix, Hive etc. för att bygga ett skräddarsytt sluten-slingsystem för driftdata och SQL-analyser. Vi anser att det finns en möjlighet att tillhandahålla direktintegrering med enkel användning och ytterligare funktioner som transaktioner, failover över datacenter etc.

Hive, HBase och Phoenix har alla en mycket aktiv gemenskap av utvecklare och används i produktion i otaliga organisationer. Dessa är solida, beprövade operativa egenskaper som kan vara grunden och framtiden för transaktionsbearbetning på Hadoop.

Så, genom att använda samma tillvägagångssätt som det framgångsrika Stinger Initiative, ser Hortonworks efter att investera ytterligare i dessa kärnprojekt och bygga fart i stället för att överge dem och börja om. Vi planerar att investera i förbättringar som främjar en integrerad operativ och analytisk upplevelse via en tätt integrerad Hive och HBase. Detta tar upp verkliga och intressanta användningsfall på ett sätt som bevarar investeringar och skapar verkligt värde för kunderna.

Vi ser fyra stora utvecklingsområden för att hjälpa till att förverkliga visionen om intelligenta applikationer:

1. Ett enhetligt SQL-lager med Hive

Utvecklare som bygger SQL-applikationer ska inte behöva välja mellan olika SQL-lösningar, var och en med sina egna styrkor och svagheter. Vi föreställer oss ett enhetligt SQL-lager, aktiverat av Hives stöd för SQL:2011, som transparent använder lämplig motor baserat på frågeåtkomstmönstret.

Denna kombination ger en enda SQL-dialekt och en enda anslutning. Dataarkitekter och DBA:er kan bestämma var data ska lagras baserat på användningsmönster utan att belasta användarapplikationer med behovet av att ansluta till flera system.

2. Förbättra HBase som en operativ butik

HBase mognar snabbt som en operativ butik och kommer att kunna ta sig an allt mer krävande arbetsbelastningar. Under det senaste året har HBase lagt till ett SQL-gränssnitt, sekundär indexering och hög tillgänglighet. Dessa funktioner kommer att fortsätta att mogna, och dessutom kommer HBase att lägga till ytterligare funktioner i företagsklass som multi-table, transaktioner mellan datacenter och mer.

Projekt som Omid (Yahoo), Tephra (Cask), Trafodion (HP) etc. erbjuder olika synsätt på att föra transaktioner till HBase. Facebook har utvecklat HydraBase, som tillåter transaktioner över datacenter. Facebook har testat HydraBase i stor skala och håller på att göra det tillgängligt i öppen källkod HBase (se HBASE-12259). När dessa system mognar kommer HBase att klara de mest krävande arbetsbelastningarna.

3. Delad metadatakatalog och transaktionshanterare

Data som skapats i HBase ska synas automatiskt i Hive och vice versa. Denna förmåga gör datadelning mellan online och analytisk helt trivial. En delad transaktionshanterare gör att Hives nya ACID-funktion och multi-table HBase-transaktioner kan fungera sömlöst.

4. YARN-aktiverat stöd för blandad arbetsbelastning

Idag distribuerar kunder vanligtvis HBase och Hive i separata kluster. Att utveckla ett analyssystem med sluten slinga kräver en effektiv kombination av operativa och analytiska arbetsbelastningar på ett sätt med flera hyresgäster. Med YARN kan vi effektivt skapa ett enda system genom att utnyttja primitiverna för resursisolering och arbetsbelastningshantering i YARN för att stödja olika former av åtkomst till data. Slider använder sig av dessa när den distribuerar HBase i YARN, medan Hive LLAP &Tez är inbyggda YARN-applikationer, vilket förenklar processen att köra ett analytiskt system med sluten slinga enligt en förutsägbar SLA.

Slutsats

Företag använder redan befintliga teknologier som är tillgängliga i HDP såsom Apache HBase, Apache Hive, Apache Phoenix etc. för att hantera snabba uppdateringar av aktuell data och analyser över ett stort antal datamängder, alla lagrade i HDFS för att åstadkomma ett analyssystem med sluten slinga . Vi hoppas kunna dra nytta av samma integrationsmönster för att ge kunderna en sömlös upplevelse genom att göra Apache HBase och Apache Hive bättre – bättre tillsammans, snarare än ny teknik för användare att förstå och konsumera.


  1. MongoDB $kond

  2. Nodejs / Express - Att starta min app:express.createServer() är utfasad

  3. ioredis nyckel med matchande mönster

  4. Vad är HBase Compactions?