Hadoop Ecosystem Vorstellung der Komponenten Oracle/metafinanz Roadshow Februar 2014
Head of Data Warehousing DWH Principal Consultant DWH Senior Consultant Wir fokussieren mit unseren Services die Herausforderungen des Marktes und verbinden Mensch und IT. Business Intelligence Themenbereiche Über metafinanz Enterprise DWH Data Modeling & Integration & ETL Architecture: DWH & Data Marts Hadoop & Columnar DBs Data Quality & Data Masking Insurance Reporting Standard & Adhoc Reporting Dashboarding BI Office Integration Mobile BI & InMemory SAS Trainings for Business Analysts BI & Risk Customer Intelligence Customer based Analytics & Processes Churn Prediction and Management Insurance Analytics Segmentation and Clustering Predictive Models, Data Mining & Statistics Scorecarding Social Media Analytics Fraud & AML Risk Solvency II (Standard & internal Model) Regulatory Reporting Compliance Risk Management metafinanz gehört seit 23 Jahren zu den erfahrensten Software- und Beratungshäusern mit Fokus auf die Versicherungsbranche. Mit einem Jahresumsatz von 250 Mio. EUR und über 1.500 Mitarbeitern entwickeln wir für unsere Kunden intelligente zukunftsorientierte Lösungen für komplexe Herausforderungen Carsten Herbe Referenten Slavomir Nagy Michael Prost mail: carsten.herbe@metafinanz.de phone: +49 89 360531 5039 Hadoop Ecosystem 10.02.2014 Seite 2
Inhalt 1 Einführung 8 Mahout 15 Cloudera Manager 2 Hive 9 HBASE 3 Impala 10 File Formats 4 Sentry 11 Flume 5 Sqoop 12 Oozie 6 Pig 13 HUE 7 Giraph 14 Zookeeper Hadoop Ecosystem 10.02.2014 Seite 3
1 Einführung
Das Hadoop-Ökosystem besteht aus einer Vielzahl von Tools und Frameworks und wird ständig durch neue Projekte erweitert. High-Level- Zugriff Cascalog HCatalog Mgmt- Utilities Ambari Cluster Mgmt. Drill Cloudera Manager Parquet DB SequenceFiles HttpFS FuseDFS DateiSystem Hadoop Ecosystem 10.02.2014 Seite 5
2 Hive
HIVE Hadoop mit SQL Hive Hadoop HiveQL (SQL) CLI Thrift Driver Job tracker / Relationale DB: Metadata-Store /user/hive/warehouse "Tabellen"-Metadaten für Files SQL ähnliche Abfragesprache HiveQL SELECT FROM JOIN GROUP BY WHERE INSERT INTO AS SELECT Leichter Einstieg in Hadoop für DB-Entwickler Einfaches Arbeiten mit strukturierten Daten Ggfs. Zugriff mit BI-Tools Auswertung von historischen Daten aus DB Hadoop Ecosystem 10.02.2014 Seite 7
3 Impala
Impala Interaktive Datenanalyse mit SQL Massively Parallel Processing (MPP) Query Engine (SQL) Client Statestore Hive Metastore Echtzeitabfragen auf Hadoop und HBase Skalierbare, verteilte Datenbanktechnologie In-Memory Data Transfers impalad SQL query cluster monitoring impalad impalad table/ database metadata Open Source Lösung von Cloudera Query Planner Query Planner Query Planner Query Coordinator Query Coordinator Query Coordinator Ad-hoc Analysen mit SQL Query Executor Query Executor Query Executor Interaktive Data Exploration Standard Reporting auf Hadoop HDFS DataNode HBase RegionServer HDFS DataNode HBase RegionServer HDFS DataNode HBase RegionServer Hadoop Ecosystem 10.02.2014 Seite 9
4 Sentry
Sentry Zugriffsrechte in Multi-User-Anwendungen Open Source für Apache Hive and Cloudera Impala Feingranulare Zugriffskontrolle durch Rechteverwaltung ImpalaD HiveServer2 Rollenbasierte Administration Daten-Klassifikation Unterstützung der Complience-Richtlinien Unterstützung von Multi-User-Anwendungen Impala Bindings Hive Bindings Future Bindings Funktionsfähig mit HiveServer2 und Impala 1.1; ab Version CDH 4.3 Policy Engine Policy Provider File-based Provider DB-based Provider Vergabe von Zugriffsrechten auf Spalten- und Zeilenebene Zugriff auf Hive-Metadaten Local FS/HDFS Hadoop Ecosystem 10.02.2014 Seite 11
Sentry sentry-provider.ini [databases] db_test1 = /projects/db_test1-sentry-provider.ini db_test2 = /projects/db_test2-sentry-provider.ini [groups] group_admin = admin_role group_user_sales = user_sales_role [roles] admin_role = server=server1, \ server=server1->uri=hdfs://nameservice1/projects/ user_sales_role = server=server1, \ server=server1->uri=hdfs://nameservice1/projects/sales Hadoop Ecosystem 10.02.2014 Seite 12
5 Sqoop
Sqoop Datenaustausch Hadoop und RDBMS Datentransfertool Datenaustausch zwischen Hadoop und SQL-Datenbanken Paralleler Datentransfer Unterstützt gängige Datenbanksysteme Aggregierte Ergebnisse in das DWH für traditionelle BI Laden von z.b. Master Daten aus DB/DWH für Analysen in Hadoop Einbettung Hadoop als Staging Area in ETL Prozess für DWH Sqoop client 1 Sqoop client 2 Reads metadata Defines and submits job Relational DB Hadoop Map Job Hadoop Ecosystem 10.02.2014 Seite 14
6 Pig
Pig Programmierplattform Pig ist eine Highlevel-Programmierplattform für die Erzeugung von MapReduce-Jobs Sie erlaubt es Programmierern, komplizierte Datenanalysen zu machen, ohne Java MapReduce Code selbst schreiben zu müssen Pig verfügt über eine eigene Programmiersprache (Pig Latin), mit der Datenflüsse beschrieben werden SQL Pig Latin Map-Reduce or or user Vereinfachung von MapReduce Abfragen als Skriptsprache Cluster Standard Extract-Transformation-Load (ETL) Prozesse Untersuchung von Rohdaten Iterative Datenverarbeitung Hadoop Ecosystem 10.02.2014 Seite 16
Pig Programmierplattform Beispiel WordCount Beispiel.txt Blaukraut bleibt Blaukraut und Brautkleid bleibt Brautkleid eingabe = load '/projects/examples/pig/input/beispiel.txt' as(zeile); woerter = foreach eingabe generate flatten (TOKENIZE(zeile)) as wort; gruppe = group woerter by wort; anzahl = foreach gruppe generate group, COUNT(woerter.wort); DUMP anzahl; (und,1) (bleibt,2) (Blaukraut,2) (Brautkleid,2) Hadoop Ecosystem 10.02.2014 Seite 17
7 Giraph
Giraph Graphenverarbeitung Giraph ist ein Framework für die Graphenverarbeitung Giraph wird als Hadoop Job ausgeführt Es baut auf der graphenorientierten Art von Googles Pregel auf, bietet aber zusätzliche Fehlertoleranz Local Computation BSP programming model Processors Superstep Wird eingesetzt zur Netzwerkanalyse Kann kürzeste Transportrouten ermitteln Data Mining Fraud Detection Risk Analysis Communication Barrier Synchronization Hadoop Ecosystem 10.02.2014 Seite 19
8 Mahout
Mahout Bibliothek für maschinelles Lernen Data Mining in Hadoop Collaborative Filtering Clustering Classification Warenkorbanalysen Klassifizierung von Kunden Kundenwechselwahrscheinlichkeit u.v.m. Mahout Hadoop Collaborative Filtering Clustering Classification Laptop MapReduce HDFS Cluster Hadoop Ecosystem 10.02.2014 Seite 21
9 HBase
HBase - NoSQL Datenbank Verteilte NoSQL- Datenbank Client Multi-dimensional Nur eine Spalte indiziert ("Key-Value") Einzelsatzverarbeitung inkl. Updates Schneller Zugriff auf Einzelsätze ZooKeeper ZooKeeper ZooKeeper HRegion- Server ZooKeeper ZooKeeper Benutzerprofile für Web-Anwendungen Warenkörbe Analyseergebnisse aus HDFS HRegion- Server HDFS HDFS HDFS HDFS HMaster HRegion- Server Hadoop Ecosystem 10.02.2014 Seite 23
HBase - NoSQL Datenbank Datensätze schreiben und lesen Anlegen der Tabelle 'blogposts' mit den Spaltenfamilien 'post' und 'image' create 'blogposts', 'post', 'image' Hinzufügen von Daten put 'blogposts', 'row1', 'post:title', 'Hello World' put 'blogposts', 'row1', 'post:author', 'The Author' put 'blogposts', 'row1', 'image:bodyimage', 'image.jpg' Ausgabe einer einzelnen Zeile: row1 get 'blogposts', 'row1' COLUMN CELL image:bodyimage timestamp=1390902504848, value=image.jpg post:author timestamp=1390902473758, value=the Author post:title timestamp=1390902453844, value=hello World 3 row(s) in 0.0390 seconds Hadoop Ecosystem 10.02.2014 Seite 24
10 File Formats
Sequence Files sind Dateien, die vor allem für die performante Verarbeitung von Daten bei MapReduce verwendet werden Sequence Files Dateien, die binär kodierte Schlüssel-Wert-Paare enthalten Geeignet zur Verarbeitung aller Hadoop-Datentypen Enthalten Metadaten, die den Datentyp des Schlüssels und des dazugehörigen Wertes identifizieren Angeboten werden drei verschiedene Dateiformate für Sequence Files: Uncompressed key/value records. Record compressed key/value records Block compressed key/value records Hadoop Ecosystem 10.02.2014 Seite 26
Avro ist ein Datenserialisierungsframework, das einfach angewendet werden kann und viele Möglichkeiten bietet. Apache Avro Apache Avro ist ein Datenserialisierungsframework. Avro bietet: reichhaltige Datenstrukturen kompaktes, schnelles, binäres Datenformat Container Datei zur persistenten Datenspeicherung Hadoop Ecosystem 10.02.2014 Seite 27
Parquet spaltenbasiertes, binäres Speicherformat für Hadoop Parquet Verarbeitung der Daten mit Hive, Impala, Pig, MapReduce Unterstützt die Speicherung geschachtelter Daten Legt spaltenweise individuelle Kompressionsmodelle fest Komprimierung erfolgt mit Snappy oder GZIP Hadoop Ecosystem 10.02.2014 Seite 28
11 Flume
Flume Log File Verarbeitung Framework zur Sammlung von Daten für das Monitoring von großen verteilten Systemen Source: Konsumiert Events von einer externen Quelle (z.b. WebServer Logfiles) und legt diese in einem Channel ab Channel: Queue zwischen Source und Sink. Behält einen Event solange im Speicher bis dieser von einer Sink konsumiert wird Sink: Konsumiert Events aus einem Channel und legt diese in einem Repository (HDFS) ab Source Sink Sammeln von Log-Files Web Server Channel HDFS Laden von Log-Files nach Hadoop Agent Hadoop Ecosystem 10.02.2014 Seite 30
12 Oozie
Oozie Workflowsteuerung Oozie Oozie ist eine Workflow Engine Oozie läuft auf einem Server (häufig außerhalb des Hadoop Clusters) und führt basierend Hadoop-Job-Workflows aus In Oozie können neben MapReduce-Jobs auch Pig-, Hive- und Sqoop-Jobs eingebunden werden Die Jobs werden auf Basis einer Workflow Definition über HTTP an das Cluster gesendet Neben der WorkflowEngine bietet Oozie auch die Möglichkeit, Jobs zeitgesteuert oder datengetrieben auszuführen (CoordinationEngine). Oozie Client Oozie Coordinator Oozie Workflow Oozie Server Hadoop Verknüpfung multipler Jobs zu logischen Einheiten Ermöglicht Erstellung und Administration komplexer Datentransformationen Hadoop Ecosystem 10.02.2014 Seite 32
Oozie Workflowsteuerung Beispiel Workflow für CharCount <workflow-app name='charcount-workflow' xmlns="uri:oozie:workflow:0.1"> <start to='charcount'/> <action name='charcount'> <map-reduce> [ ] </map-reduce> <ok to='end'/> <error to='kill'/> </action> <kill name='kill'> <message>something went wrong: ${wf:errorcode('charcount')}</message> </kill> <end name='end'/> </workflow-app> Start Start MapReduce CharCount Abbruch Fehler OK Ende Hadoop Ecosystem 10.02.2014 Seite 33
13 HUE
HUE - Architektur Quelle: http://www.cloudera.com/content/cloudera-content/cloudera-docs/cdh4/4.2.2/hue-2-user-guide/images/hue.jpeg Hadoop Ecosystem 10.02.2014 Seite 35
HUE - Home Hadoop Ecosystem 10.02.2014 Seite 36
HUE - Hive Hadoop Ecosystem 10.02.2014 Seite 37
HUE - Pig Hadoop Ecosystem 10.02.2014 Seite 38
HUE File Browser Hadoop Ecosystem 10.02.2014 Seite 39
14 ZooKeeper
ZooKeeper verteilter Koordinationsservice für verteilte Anwendungen ZooKeeper bietet ein einfaches Set an Funktionalitäten, auf das verteilte Anwendungen aufbauen können, um High-Level Services für Synchronisation, Konfigurationsverwaltung Grouping und Naming zu implementieren. Die Motivation von ZooKeeper ist es, verteilten Anwendungen die Verantwortung abzunehmen, Koordinationsservices von Grund auf neu zu entwickeln. Zookeeper Service Leader Clients Vereinfacht die Koordination von Prozessen in verteilten Systemen Steigerung der Skalierbarkeit, Performanz und Fehlertoleranz durch verbesserte Prozesskoordination Hadoop Ecosystem 10.02.2014 Seite 41
15 Cloudera Manager
Cloudera Manager End-to-End Administration für Hadoop Cloudera Manager Manage Monitor Einfache Installation, Konfiguration und Betrieb von Hadoop-Clustern durch zentralgesteuerter, intuitiver Administration für alle Services, Hosts und Workflows. Zentrale Sicht auf alle Aktivitäten im Cluster durch Heatmaps, proaktive Tests und Warnungen. Diagnose Einfache Diagnose und Problemlösung durch Operational Reports und Dashboards, Events, Intuitive Log Viewing, Audit Trails und Integration mit dem Cloudera Support. Hadoop Ecosystem 10.02.2014 Seite 43
Cloudera Manager End-to-End Administration für Hadoop Cloudera Manager - Services Quelle: Cloudera_Developer_Training.pdf Hadoop Ecosystem 10.02.2014 Seite 44
Cloudera Manager End-to-End Administration für Hadoop Cloudera Manager - Activities Quelle: Cloudera_Developer_Training.pdf Hadoop Ecosystem 10.02.2014 Seite 45
Cloudera Manager End-to-End Administration für Hadoop Cloudera Manager - Reporting Quelle: Cloudera_Developer_Training.pdf Hadoop Ecosystem 10.02.2014 Seite 46
Cloudera Manager End-to-End Administration für Hadoop Cloudera Manager Authorization Manager Quelle: Cloudera_Developer_Training.pdf Hadoop Ecosystem 10.02.2014 Seite 47
Wir bieten offene Trainings an sowie maßgeschneiderte Trainings für individuelle Kunden. metafinanz training Einführung Hadoop (1 Tag) Hadoop Intensiv-Entwickler Training (3 Tage) Einführung Oracle in-memory Datenbank TimesTen Data Warehousing & Dimensionale Modellierung Oracle Warehousebuilder 11.2 New Features OWB Skripting mit OMB*Plus Oracle SQL Tuning Einführung in Oracle: Architektur, SQL und PL/SQL Mehr Information unter http://www.metafinanz.de/news/schulungen All trainings are also available in English on request. Hadoop Ecosystem 10.02.2014 Seite 48
Hadoop Ecosystem Fragen? Jetzt oder später? Carsten Herbe Head of Data Warehousing Downloads unter dwh.metafinanz.de mail carsten.herbe@metafinanz.de phone +49 89 360531 5039 Hadoop Ecosystem
Vielen Dank für Ihre Aufmerksamkeit! metafinanz Informationssysteme GmbH Leopoldstraße 146 D-80804 München Phone: +49 89 360531-0 Fax: +49 89 350531-5015 Email: kontakt@metafinanz.de www.metafinanz.de DWH & Hadoop Expertise http://dwh.metafinanz.de Besuchen Sie uns auch auf: