big data: hive on spark mit jedox nutzen...it-novum esearch aper big data: hive on spark mit jedox...

18
Big Data: Hive on Spark mit Jedox nutzen Autoren: Alexander Keidel, Michael Deuchert und Phillip Musch Getestet mit: Jedox: 6.0, 6.0 SR1 Cloudera CDH: 5.4.8 Research Paper it-novum.com

Upload: others

Post on 19-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Big Data: Hive on Spark mit Jedox nutzen

Autoren: Alexander Keidel, Michael Deuchert und Phillip Musch

Getestet mit:Jedox: 6.0, 6.0 SR1Cloudera CDH: 5.4.8

Research Paper

it-novum.com

1. Big Data-Datenbestände mit Jedox und Hive on Spark auswerten 3

2. KonfigurationvonHiveonSparkmitHilfedesClouderaClusterManager 4

3. Testen von Hive on Spark 7

4. Einrichten von Hive on Spark in Jedox 8

5. Hive on Spark mit Jedox 10

6. Messungen 11

7. Fazit 17

Inhalt

2

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

1. Big Data-Datenbestände mit Jedox und Hive on Spark auswerten

Mit dem Release von Hive 1.1 im Januar 2015 hat Apache Spark in Hive Einzug gehalten. Bei

Apache Spark handelt es sich um ein Open Source-Projekt aus dem Bereich Cluster Computing

zur Verarbeitung von großen Datenmengen.

Im Gegensatz zu Map-Reduce über Hadoop versucht Spark, viele Operationen bei der Datenver-

arbeitungimArbeitsspeicherdurchzuführen(In-Memory)undZugriffeaufdasHDFSgeringzu

halten.FüreinigeAnwendungsfälleistesdaherbiszu100-malschnelleralsMap-Reduce.Das

betrifftinsbesondereAnwendungenmitvielenReduce-Schrittenwiesiez.B.beiderÜbersetzung

vonkomplexenQueriesoderimBusinessIntelligence-UmfeldanderTagesordnungsind.

Bislangwaresnichtmöglich,SparkinderBusinessIntelligence-PlattformvonJedoxzunutzen

undsovondenPerformancegewinnenzuprofitieren.AusdiesemGrundhabenwirdieseUn-

tersuchung gestartet: wir möchten zeigen, wie Spark in Verbindung mit Hive und mit einigen

EinschränkungenauchfürJedoxgenutztwerdenkann.Unddies,ohnedassAnpassungenan

den Queries oder in Jedox vorgenommen werden müssen.

3

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

2. Konfiguration von Hive on Spark mit Hilfe des Cloudera Cluster Manager

DiekomfortabelsteMöglichkeit,demNutzerHive on Spark zu bieten, ist der Einsatz des Cloudera

SoftwareStacks,wieerauchbeiit-novumintensivgenutztwird.DieKonfigurationkannbequem

überdieOberflächedesClouderaClusterManagerserfolgen.Zubeachtenistallerdings,dass

Hive on SparkerstabVersion5.4.xenthaltenistundvonClouderanochnichtfürdenProduktiv-

betriebfreigegebenwurde.Dasheißt,dassesvonClouderanochkeinenSupportfürdenEinsatz

von Hive on Spark gibt.

FürunsereTestshabenwirdieneuesteClouderaVersion(CDH5.4.8)eingesetzt.UmCloudera

entsprechendzukonfigurieren,müssenfolgendeSchrittedurchgeführtwerden:

1) ClickaufdenDienstHive:

4

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

2) ImSuchfensterdesClouderaManagermussdieKonfigurationseinstellung

„Hive: Enable Hive on Spark“ mit einem Doppelklick ausgewählt werden:

3) DurchdasSetzenderCheckboxundeinemanschließendemKlickauf„Änderungen speichern“erzeugtClouderadieentsprechendenKonfigurationseinstellungen:

4) EineBesonderheitbeiClouderaist,dassHive on SparknurinVerbindungmitYARN

genutzt werden kann. Das bedeutet zunächst eine Einschränkung, da dadurch eine zu

sätzliche Abhängigkeit von Spark zu Hadoop entsteht. Aber es hat andererseits den

Vorteil, dass sowohl Spark- als auch Hadoop MapReduce Jobs über eine einheitliche

Schnittstelle verwalten können.

UmSparkonYarninClouderazukonfigurieren,musszunächstimSuchfensterdes

ClouderaClusterManager„spark_on_yarn-service“eingegebenwerden.Danachklickt

manaufSparkundanschließendauf„Änderungenspeichern“,damitClouderadiepas

sendenKonfigurationseinstellungenerzeugt.

5

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

5) ImletztenSchrittmüssendieindenSchritten1bis4erzeugtenKonfigurationseinstel

lungen an die einzelnen Cluster-Instanzen verteilt werden. Das erreicht man über einen

Klickauf„ClientKonfigurationbereitstellen“imKontextmenudesClusters:

6) NachderBereitstellungderClientkonfigurationkannHive on Spark mit Cloudera

genutzt werden:

6

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

3. Testen von Hive on SparkDasTestenderunterAbschnitt1erzeugtenKonfigurationerfolgtameinfachstenüberdieHive

Shell.DazumusstzunächstdieHiveExecutionEnginegeändertwerden;dieseistalsDefaultauf

MapReduceüberHadoopeingestellt.DerBefehl„sethive.execution.engine=spark“inderShell

ändertdiehive.executionenginefürdiejeweiligeSessionaufSpark:

hive>set hive.execution.engine=spark;

EineQuery,wiebeispielsweisezumAnzeigenderZeilenanzahl:

hive> select count (*) as num_row from mytable;

erzeugt nun einen Spark Job, der im Yarn Job Tracker angezeigt wird.

Hinweis:Querieswiez.B.Select*Frommy_tableerzeugeninHivekeinenMapReduceoder

SparkJob,dasietechnischgesehenlediglicheinLesenderHDFS-Dateidarstellen,diefürdie

Tabelle hinterlegt ist.

7

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

4. Einrichten von Hive on Spark in JedoxUm Hive on Spark mit Jedox nutzen zu können, benötigen wir zusätzlich den Jedox Hadoop

Connector. In Version 6 von Jedox muss er als zusätzliches Package installiert werden. Es kann

nuneineStandardHiveVerbindung(überMapReduce)mitdemneuenVerbindungstyp„Hive“

angelegt werden. In Jedox stellen wir zunächst im ersten Schritt eine Verbindung zu Hive her

undsetzenanschließenddieHiveExecutionEngineaufSpark.DasistinJedoxmomentannur

überUmwegemöglich.ZuerstlegtmandafürüberGenericDatabaseConnectioneineneue

Verbindung an:

…undträgtfolgendeWerteein:

и URL

и Treiberklasse

и Benutzername

и Passwort

DieURListeinJDBC-StringundsetztsichfürdieVerbindungmitHivewiefolgtzusammen:

Jdbc:hive2://IP_HIVE2_SERVER:HIVE_TCP_THRIFT_PORT/HIVE_DB

Um jetzt Hive on Spark nutzen zu können, muss man allerdings zusätzlich einen GET-Parameter

anhängen,derbeimVerbindungsaufbaumitdemHiveServerautomatischausgeführtwird.Der

generischeJDBC-StringfürdieVerwendungvonHive on Spark lautet:

Jdbc:hive2://IP_HIVE2SERVER:HIVE_TCP_THRIFT_PORT/HIVE_DB?hive.execution.engine=spark

8

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

DievonunsverwendeteTreiber-KlasseistderoffizielleHive-JDBC-Treiber:

org.apache.hive.jdbc.HiveDriver.

DieVerbindungkannnunmiteinemKlickaufdenTest-Buttongetestetwerden.

Hinweis:InJedox6.0SR2wirddieseKonfigurationdirektüberdieGUIüberdenConnection-

TypHivemöglichseinunddamitstarkvereinfacht.EineausführlicheDokumentationderHive-

KonfigurationsparameterundderenÜbergabeinFormeinerJDBCURListunterHiveConfigura-

tion Properties sowie Hive2 Connection URL Format erhältlich.

9

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

5. Hive on Spark mit JedoxMit der im letzten Abschnitt beschriebenen Verbindung werden die Queries an die Hive Table

nichtlängeralsMapReduce-JobüberHadoop,sondernüberSparkausgeführt.Soerzeugtz.B.

dieQueryeinenSparkJob,derwiebereitsinAbschnitt1beschriebenimYARNClusterManager

betrachtet werden kann.

NachdemEndedesSparkJobswerdendieErgebnisseanJedoxübertragen.Hierkönnensiewie

gewohnt weiter bearbeitet werden.

10

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

6. MessungenUm messen zu können, wie die Leistung von Hive on Spark in Verbindung mit Jedox ist, haben

wirmitdreiverschiedenenQueriesMessungendurchgeführt.AlsTestdatendientenunsFlugda-

ten aus den USA von Januar 2014 bis August 2015, ein unter http://www.transtats.bts.govfrei

verfügbarerDatensatzmitca.8,2MillionenZeilen.

DieersteMessung,eineeinfacheScanQuery,dientedazu,denDatensatznachdenDa-

tenvomMärz2014zufiltern.DiezweiteMessungbestandauseinerAggregationQuery

undhattezumZiel,dieAnzahlallerZeilenderDatenbankauszugeben.Alsletzteshaben

wireinefürdasBI-UmfeldrealistischeQueryerzeugt,welchedieAnzahlallerverspäteten

FlügeausgibtundnachFluggesellschaftgruppiert.DafürsindmehrereJoin-undAggre-

gationen-Operationennotwendig.DiefolgendenQuerieswurdenjeweilsüberdieDaten-

vorschaufunktionausgeführt.DurchdasSetzeneinesentsprechendhohenLimitswurde

auchbeachtet,dassdasgesamteErgebnisderQueryinderDatenvorschauangezeigtwird.

BeidieserrealistischerenAnfragezeigtsicheindeutlicherUnterschiedzwischenHive on Spark

undHadoopMapReduce:diePerformanzistumfast400%höheralsbeiderDefault-Einstellung!

Mit Hive on SparklassensichDatenanalysenalsowesentlichschnellerdurchführen.

DieQueriesmitdenlängstenLaufzeitenimBI-UmfeldkommenallerdingsbeimBeladenderDa-

tencubesundDimensionstabellenvor.WirhabendeshalbineinemnächstenSchrittdieEignung

vonSparkfürdiesenEinsatzzweckuntersucht.

11

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

DazuhabenwirdiverseLoad-TypenwieDimension-Load,Cube-LoadundeineKombinationder

beidenVariantenuntersucht.ZusätzlichhabenwirdieVerarbeitungsgeschwindigkeitenbeim

Schreiben in eine Datei betrachtet. Dadurch werden eventuelle Bottlenecks z.B. durch den Lade-

prozessindieIn-memoryDBausgeschlossen.

UmdieMessungenbessernachvollziehenbzw.reproduzierenzukönnen,sollzunächstaufden

AufbaudesverwendetenCubeseingegangenwerden:

Das Flussdiagramm verdeutlicht die einzelnen Teilschritte des ETL-Prozesses. Die ersten bei-

denBereicheConnectionundExtractwurdenbereitserwähnt.AlsAbfragehabenwirQuery3

alsHiveExtractQuellebenutzt.AusnahmenbildendieDimensionLoads,beidemwirfürjede

DimensioneigeneQueriesverwendethaben(sieheQueries1und2).

12

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

DieTableNormalizationTransformationzeigtdenAufbauderFaktentabelle.Siesetztsichaus

den Dimensionen FlightDate, Airline, Origin, Destination, Cancellation sowie Measures zusam-

men.LetzterebeinhaltetdieKennzahlenFlights,Distances,AirTimeundDelay.

Bei der Messung der Dimension-Loads haben wir als Stichproben die beiden Dimensionen Pe-

riodundCancellationuntersucht.DieweiterenDimensionendesWürfelsweiseneinähnliches

Laufzeitverhaltenauf.

Verwendete Queries:

Abbildung:Query1und2

13

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

Ergebnis:

Beim Laden der Dimensionen Period und Cancellation konnten mit Spark Leistungssteigerungen

von334%und316%erreichtwerden.

FürdieBetrachtungdesLaufzeitverhaltensdesCube-LoadkamdiefolgendeQueryzumEinsatz:

Abbildung:Query3

14

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

Ergebnis:

DasLadendesWürfelskonntemitSparkumknapp260%beschleunigtwerden.

MitdergleichenQueryhabenwiraucheineKombinationvonDimension-undCube-Loadsowie

das Schreiben in eine Datei getestet. Dabei werden zunächst alle einzelnen Dimensionen nachei-

nandergeladen.Sobalddiesabgeschlossenist,folgtderLoaddesWürfels.

15

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

Ergebnis:

DerzeitaufwendigsteJobunsererBetrachtungkonntevonüberzweiStundenLaufzeitauf38

Minutenverkürztwerden.DasbedeuteteineVerkürzungderLaufzeitumetwa344%.

16

it-novum Research Paper | Big Data: Hive on Spark mit Jedox nutzen

7. FazitDieNutzungvonHive on SparkinVerbindungmitJedoxeröffnetganzneueMöglichkeitenfürdie

AufbereitungundAuswertungvonBigData-Datenbeständen.ObwohldievorgestellteLösung

miteinigenEinschränkungenverbundenist,zeigenunsereTests,dassmitgeringemAufwand

die Integration von Hive on SparkinJedoxmöglichist.DadurchlassensichPerformancegewinne

vonbiszu400%fürBigDataQuerieserreichen.DasbetrifftinsbesonderekomplexeQueriesmit

vielenJoinsundAggregationenwiesieoftimUmfeldvonBusinessIntelligenceundBusiness

Analyticsvorkommen.

Insbesondere die Ladeprozesse der Dimensionstabellen und Cubes durch Spark werden um

biszu344%erheblichbeschleunigt.DadieseArtvonLadeprozesseninjedemJedoxRoll-out

vorkommt, sollte unserer Meinung nach ein Hive on Spark Einsatz grundsätzlich in Betracht ge-

zogenwerden-auchwennsichdieSpark-UnterstützungzumaktuellenZeitpunktnochineinem

experimentellenStatusbefindet.ZukünftigistbeieinerWeiterentwicklungvonHive on Spark mit

noch größeren Leistungssteigerungen zu rechnen.

Trotz der deutlichen Vorteile von Hive on SparkgibtesleideraucheinenkleinenWermutstrop-

fen:KonfigurationseinstellungenfürHive on Spark können immer nur pro Verbindung als zusätz-

licherGET-ParameterinderJDBCURLangelegtwerden.DasÜberschreibenvonParameternpro

QueryunddamiteinmöglichesTuningistindervonunsbenutzenJedox-Versionnichtmöglich.

17

it-novum Profil

Ihr Ansprechpartner für Business Intelligence und Big Data: Stefan Müller DirectorBigDataAnalytics

[email protected]

+49(0)661103942

Führend in Business Open Source-Lösungen und -Beratungit-novumistdasführendeIT-BeratungsunternehmenfürBusinessOpenSourceimdeutschsprachigenMarkt.

Gegründet 2001 ist it-novum heute eine Konzerntochter der börsennotierten KAP Beteiligungs-AG.

Mitunseren85MitarbeiternbetreuenwirvomHauptsitzinFuldaunddenNiederlassungeninDüsseldorf,Dortmund,

WienundZürichausvorwiegendgroßeMittelstandskundensowieGroßunternehmenimdeutschsprachigenRaum.

WirsindzertifizierterSAPBusinessPartnerundlangjährigerakkreditierterPartnerzahlreicherOpenSource-

Produkte. Unsere Schwerpunkte sind die Integration von Open Source mit Closed Source und die Entwicklung

kombinierterOpenSource-Lösungenund-Plattformen.

MitseinerISO9001Zertifizierunggehörtit-novumzudenwenigenOpenSource-Spezialisten,

diedieBusinesstauglichkeitihrerLösungenauchdurcheinQualitätssicherungssystembelegen.

Über 15 Jahre Open Source-Projekterfahrung ▶ Unser Portfolio umfasst die vielfältige Bandbreite von Open Source-Lösungen im Applications- und

Infrastruktur-Bereichsowieeigene,imMarktetablierteProduktentwicklungen.

▶ AlsIT-BeratungshausmitprofundertechnischerExpertiseimBusinessOpenSource-Bereichgrenzenwirunsvon

den Standardangeboten der großen Lösungsanbieter ab. Denn unsere Lösungen sind nicht nur skalierbar und

flexibelanpassbar,sondernfügensichauchnahtlosinIhrebestehendeIT-Infrastrukturein.

▶ Wir stellen fachübergreifende Projektteams zur Verfügung, bestehend aus Entwicklern, Consultants und

Wirtschaftsinformatikern. So verbinden wir Business Know-how mit Technologieexzellenz und schaffen

nachhaltigeGeschäftsprozesse.

▶ UnserZielistes,IhneneinequalitativhochwertigeBeratunginallenProjektphasenzubieten–vonderAnalyse,

über die Konzeption bis hin zu Umsetzung und Support.

▶ AlsEntscheidungshilfevorProjektbeginnbietenwirIhneneinenProof-of-Conceptan.DurchdiePraxissimulation

unddenerstelltenPrototypenkönnenSiesichrisikofreifüreineneueSoftwareentscheidenundprofitierenvon

SicherheitundPlanbarkeit,klareProjektmethodikundvernünftigeKalkulation.

it-novum GmbH DeutschlandHauptsitz Fulda: Edelzeller Straße 44 · 36043 FuldaTelefon:+49(0)661103333NiederlassungeninDüsseldorf&Dortmund

it-novum Schweiz GmbHHotelstrasse 1 ·8058ZürichTelefon:+41(0)445676207

it-novum Zweigniederlassung ÖsterreichAusstellunsstraße50/ZugangC·1020WienTelefon:+4312057741041