Big Data – Ein technischer Überblick
Copyright ©: 2015 OnPage.org GmbH
Twitter: @danny_munich
Facebook: https://www.facebook.com/danny.linden2
Aus Gelsenkirchen
2011 nach München
2013 zu OnPage.org
Interessen: Webcrawling, Suchmaschinen(weniger SEO),
skalierbare Big Data Systeme
Über mich
Twitter: @danny_munich
Facebook: https://www.facebook.com/danny.linden2
E-mail: danny@onpage.org
Was bedeutet Big Data?
Wikipedia: „Big Data [...] bezeichnet Datenmengen, die zu groß oder zu komplex sind oder sich zu schnell
ändern, um sie mit händischen und klassischen Methoden der Datenverarbeitung auszuwerten. “
- Große Datenmengen speichern/verarbeiten: Terrabyte
- Schnelle Antwortzeiten
- Flexible Skalierung
- Fault tolerance
- Vorausplanen der benötigten Ressourcen
Anwendungsgebiete
Empfehlungssysteme
- Clustering,
- Recommandation
Analysen/Diagnosen
- Analytics
- Fraud-Protection
Prozessoptimierung
- Fertigung
- Lagerhaltung
Forschung
- Klima
- Krankheiten
Big Data Frameworks
Hadoop – Der VW Golf
Hadoop
- 2008 gestartet
- Basiert auf dem Map-Reduce Algorithmus von Google
- Besteht ursprünglich aus MapReduce und HDFS
- Diverse Erweiterungen / Layer oberhalb von Map-Reduce
HDFS - Hadoop Distributed File System
- Global verteilbar
- Robust auf Java
- Ausfallsicher / HA möglich
- Skalierbar
- Auf low-cost Hardware
- High-level APIs (REST)
Map-Reduce - Hadoop Distributed File System
1. Input
2. Map-Phase
3. Shuffle-Phase
4. Reduce Phase
5. Output
Nice Data Format
HDFS + Map-Reduce: Datenlokalität statt Netzwerklast
Open-Source Erweiterungen für Hadoop
Apache PIG
Apache HBase
Apache Hive
Apache Oozie
HUE
Apache Sqoop
Apache Nutch
Apache Solr
Apache mahout
Real-Life Use-Cases für Hadoop
- Logfile-Analyse
- Webcrawling / eigene Suchmaschine (Apache Solr & Apache Nutch)
- Analyse großer Historischer Datenmengen (Produktdaten)
- Textanalyse (TF-IDF usw...)
- Machine-Learning
- Recommandation
- Clustering
- ...
Datenquellen zum spielen:
- Wikipedia Dumps: https://dumps.wikimedia.org
- Google Ngrams: http://bit.ly/1gfTzNG
- Über 1.000 TB gecrawltes Web: http://commoncrawl.org
- AWS Public Datasets: http://aws.amazon.com/datasets
- 2,9 Mrd Entitäten: http://www.freebase.com
- ...
VMware / VirtualBox:
- MapR: https://www.mapr.com/products/mapr-sandbox-hadoop
- Cloudera: http://www.cloudera.com/content/cloudera/en/downloads/quickstart_vms/cdh-5-4-x.html
- Hortonworks: https://hortonworks.com/products/hortonworks-sandbox/
Distributionen zum testen:
Datenbanken:
Von SQL zu NoSQL zu NewSQL
Relationale Datenbanken
- Wird mittels SQL Abgefragt
- ACID
- Normalisierung
Nachteile von Relationalen Datenbanken:
Maximal 2 von 3
Eigenschaften möglich
RDMS nicht zur
Skalierung geeignet?
NoSQL Datenbanken
- Key-Value
- Column-Based
- Document
- Graph
Key-Value Datenbanken
- Einfach Aufgebaut: GET/PUT/DELETE
- Verwenden von Zusammengesetzten Keys:
- DB-Systeme: Redis, Riak, Cassandra, DynamoDB
Key-Value Datenbanken
Beispiel 1:
- GET <Eventid>
- GET besucher = 100.000
- GET <Eventid><Datum>
- GET besucher:28-04-2015 = 1.000
- GET <Eventid><Datum><Stunde>
- GET besucher:28-04-2015-18-00 = 50
Beispiel 2:
- GET <Person><Datenfeld>
- GET P1:Vorname = Max
- GET P1:Nachname = Mustermann
- GET P1:Tel = [0151-1234567, 0201-987654]
Column-Based Datenbanken
1,Schmidt,Josef,40000;2,Müller,Maria,50000;3,Meier,Julia,44000;
Klassisch Zeilenorientierte Speicherung:
1,2,3;Schmidt,Müller,Meier;Josef,Maria,Julia;40000,50000,44000;
Spaltenorientierte Speicherung:
SELECT * FROM tabelle WHERE Personalnr = 1;
SELECT SUM(Gehalt) FROM tabelle;
Column-Based Datenbanken
Bekannte Systeme:
- Hbase (Basiert auf Google BigTable, u.a bei Facebook)
- Cassandra (Ursprünglich Facebook, Digg, Twitter, Reddit)
- SimpleDB (Amazon AWS)
Document Datenbanken
Beispiel-Dokument, JSON:
db.users.find(
{ status: "A",
age: 55
} )
Beispiel-Dokument:
Graph Datenbanken
Als Graph abbilden:
- Social-Networks
- Verlinkungen
- uvm ...
Typische Abfragen:
Person X kennt Person
Y über Person Z
- Kombiniert SQL mit NoSQL
- ACID trotz Skalierbarkeit
NewSQL
- Google F1 basierend auf Google Spanner
- CockroachDB
- https://github.com/cockroachdb/cockroach
- Clustrix
- VoltDB
- MemSQL
- Pivotal's SQLFire
- SAP HANA
- FoundationDB
- NuoDB
More NoSQL Stuff
- Elasticsearch
- Auch als Datenbank nutzbar!
- https://crate.io
Die Cloud:
Big Data – Jetzt – Sofort - Alles
Cloud Service Provider
Die drei großen:
- Amazon AWS
- Google Cloud
- Microsoft Azure
Vorteile:
- Schnell beliebige Kapazität buchen
- Minuten/Stundenbasierte Abrechung
- Lineare skalierung
- Keine Upfront kosten
Cloud Anbieter
Cloud Anbieter
Amazon AWS Spot-Instances
Durch falsche (copy&paste)
Konfiguration
werden 2.150$ / Monat / Server
aus dem Fenster geworfen
Amazon AWS Services
Der versprochene Quick-Win ;)
Prediction.io
- Ready 2 use Machine-Learning System
- Basiert auf Spark (In-Memory Hadoop)
- Im AWS Marketplace verfügbar
- https://docs.prediction.io/install/launch-aws/
u.a:
- Recommendation
- Complementary Purchase
- Clustering
- Lead Scoring
- …
Fertige Module ua. für:
- Magento
- Wordpress
- ... uvm auf Github
Prediction.io
<?php
use predictionioEventClient;
$accessKey = 'IiVHNFnyNvWXqMqXxcIbQDqFRz5K0fe9e3QfqjKwvW3O';
$client = new EventClient($accessKey, 'http://localhost:7070');
$response = $client->setUser(5);
$response = $client->setItem('bookId1', array('itypes' => 1));
$client->recordUserActionOnItem('view', 5, 'bookId1');
$engineClient = new EngineClient('http://localhost:8000');
$response = $engineClient->sendQuery(array('uid'=>7, 'iids'=>array(1,2,3,4,5)));
print_r($rec);
Das wars!
Customer:
Twitter: @danny_munich
Facebook: https://www.facebook.com/danny.linden2
E-mail: danny@onpage.org
Achja: Wir suchen gute Entwickler:
https://de.onpage.org/about/jobs/

Big Data Bullshit Bingo

  • 1.
    Big Data –Ein technischer Überblick Copyright ©: 2015 OnPage.org GmbH Twitter: @danny_munich Facebook: https://www.facebook.com/danny.linden2
  • 2.
    Aus Gelsenkirchen 2011 nachMünchen 2013 zu OnPage.org Interessen: Webcrawling, Suchmaschinen(weniger SEO), skalierbare Big Data Systeme Über mich Twitter: @danny_munich Facebook: https://www.facebook.com/danny.linden2 E-mail: danny@onpage.org
  • 3.
    Was bedeutet BigData? Wikipedia: „Big Data [...] bezeichnet Datenmengen, die zu groß oder zu komplex sind oder sich zu schnell ändern, um sie mit händischen und klassischen Methoden der Datenverarbeitung auszuwerten. “ - Große Datenmengen speichern/verarbeiten: Terrabyte - Schnelle Antwortzeiten - Flexible Skalierung - Fault tolerance - Vorausplanen der benötigten Ressourcen
  • 4.
    Anwendungsgebiete Empfehlungssysteme - Clustering, - Recommandation Analysen/Diagnosen -Analytics - Fraud-Protection Prozessoptimierung - Fertigung - Lagerhaltung Forschung - Klima - Krankheiten
  • 5.
  • 6.
    Hadoop - 2008 gestartet -Basiert auf dem Map-Reduce Algorithmus von Google - Besteht ursprünglich aus MapReduce und HDFS - Diverse Erweiterungen / Layer oberhalb von Map-Reduce
  • 7.
    HDFS - HadoopDistributed File System - Global verteilbar - Robust auf Java - Ausfallsicher / HA möglich - Skalierbar - Auf low-cost Hardware - High-level APIs (REST)
  • 8.
    Map-Reduce - HadoopDistributed File System 1. Input 2. Map-Phase 3. Shuffle-Phase 4. Reduce Phase 5. Output
  • 9.
    Nice Data Format HDFS+ Map-Reduce: Datenlokalität statt Netzwerklast
  • 10.
    Open-Source Erweiterungen fürHadoop Apache PIG Apache HBase Apache Hive Apache Oozie HUE Apache Sqoop Apache Nutch Apache Solr Apache mahout
  • 11.
    Real-Life Use-Cases fürHadoop - Logfile-Analyse - Webcrawling / eigene Suchmaschine (Apache Solr & Apache Nutch) - Analyse großer Historischer Datenmengen (Produktdaten) - Textanalyse (TF-IDF usw...) - Machine-Learning - Recommandation - Clustering - ...
  • 12.
    Datenquellen zum spielen: -Wikipedia Dumps: https://dumps.wikimedia.org - Google Ngrams: http://bit.ly/1gfTzNG - Über 1.000 TB gecrawltes Web: http://commoncrawl.org - AWS Public Datasets: http://aws.amazon.com/datasets - 2,9 Mrd Entitäten: http://www.freebase.com - ...
  • 13.
    VMware / VirtualBox: -MapR: https://www.mapr.com/products/mapr-sandbox-hadoop - Cloudera: http://www.cloudera.com/content/cloudera/en/downloads/quickstart_vms/cdh-5-4-x.html - Hortonworks: https://hortonworks.com/products/hortonworks-sandbox/ Distributionen zum testen:
  • 14.
    Datenbanken: Von SQL zuNoSQL zu NewSQL
  • 15.
    Relationale Datenbanken - Wirdmittels SQL Abgefragt - ACID - Normalisierung
  • 16.
    Nachteile von RelationalenDatenbanken: Maximal 2 von 3 Eigenschaften möglich RDMS nicht zur Skalierung geeignet?
  • 17.
    NoSQL Datenbanken - Key-Value -Column-Based - Document - Graph
  • 18.
    Key-Value Datenbanken - EinfachAufgebaut: GET/PUT/DELETE - Verwenden von Zusammengesetzten Keys: - DB-Systeme: Redis, Riak, Cassandra, DynamoDB
  • 19.
    Key-Value Datenbanken Beispiel 1: -GET <Eventid> - GET besucher = 100.000 - GET <Eventid><Datum> - GET besucher:28-04-2015 = 1.000 - GET <Eventid><Datum><Stunde> - GET besucher:28-04-2015-18-00 = 50 Beispiel 2: - GET <Person><Datenfeld> - GET P1:Vorname = Max - GET P1:Nachname = Mustermann - GET P1:Tel = [0151-1234567, 0201-987654]
  • 20.
    Column-Based Datenbanken 1,Schmidt,Josef,40000;2,Müller,Maria,50000;3,Meier,Julia,44000; Klassisch ZeilenorientierteSpeicherung: 1,2,3;Schmidt,Müller,Meier;Josef,Maria,Julia;40000,50000,44000; Spaltenorientierte Speicherung: SELECT * FROM tabelle WHERE Personalnr = 1; SELECT SUM(Gehalt) FROM tabelle;
  • 21.
    Column-Based Datenbanken Bekannte Systeme: -Hbase (Basiert auf Google BigTable, u.a bei Facebook) - Cassandra (Ursprünglich Facebook, Digg, Twitter, Reddit) - SimpleDB (Amazon AWS)
  • 22.
    Document Datenbanken Beispiel-Dokument, JSON: db.users.find( {status: "A", age: 55 } ) Beispiel-Dokument:
  • 23.
    Graph Datenbanken Als Graphabbilden: - Social-Networks - Verlinkungen - uvm ... Typische Abfragen: Person X kennt Person Y über Person Z
  • 24.
    - Kombiniert SQLmit NoSQL - ACID trotz Skalierbarkeit NewSQL - Google F1 basierend auf Google Spanner - CockroachDB - https://github.com/cockroachdb/cockroach - Clustrix - VoltDB - MemSQL - Pivotal's SQLFire - SAP HANA - FoundationDB - NuoDB
  • 25.
    More NoSQL Stuff -Elasticsearch - Auch als Datenbank nutzbar! - https://crate.io
  • 26.
    Die Cloud: Big Data– Jetzt – Sofort - Alles
  • 27.
    Cloud Service Provider Diedrei großen: - Amazon AWS - Google Cloud - Microsoft Azure Vorteile: - Schnell beliebige Kapazität buchen - Minuten/Stundenbasierte Abrechung - Lineare skalierung - Keine Upfront kosten
  • 28.
  • 29.
  • 30.
    Amazon AWS Spot-Instances Durchfalsche (copy&paste) Konfiguration werden 2.150$ / Monat / Server aus dem Fenster geworfen
  • 31.
  • 32.
  • 33.
    Prediction.io - Ready 2use Machine-Learning System - Basiert auf Spark (In-Memory Hadoop) - Im AWS Marketplace verfügbar - https://docs.prediction.io/install/launch-aws/ u.a: - Recommendation - Complementary Purchase - Clustering - Lead Scoring - … Fertige Module ua. für: - Magento - Wordpress - ... uvm auf Github
  • 34.
    Prediction.io <?php use predictionioEventClient; $accessKey ='IiVHNFnyNvWXqMqXxcIbQDqFRz5K0fe9e3QfqjKwvW3O'; $client = new EventClient($accessKey, 'http://localhost:7070'); $response = $client->setUser(5); $response = $client->setItem('bookId1', array('itypes' => 1)); $client->recordUserActionOnItem('view', 5, 'bookId1'); $engineClient = new EngineClient('http://localhost:8000'); $response = $engineClient->sendQuery(array('uid'=>7, 'iids'=>array(1,2,3,4,5))); print_r($rec);
  • 35.
    Das wars! Customer: Twitter: @danny_munich Facebook:https://www.facebook.com/danny.linden2 E-mail: danny@onpage.org Achja: Wir suchen gute Entwickler: https://de.onpage.org/about/jobs/

Hinweis der Redaktion

  • #2 Start
  • #6 Screenshot austauschen + shclecht lesbar
  • #11 Screenshot austauschen + shclecht lesbar
  • #15 Screenshot austauschen + shclecht lesbar
  • #16 Atomicity, Consistency, Isolation und Durability
  • #17 Atomicity, Consistency, Isolation und Durability
  • #18 Atomicity, Consistency, Isolation und Durability
  • #19 Atomicity, Consistency, Isolation und Durability
  • #20 Atomicity, Consistency, Isolation und Durability
  • #21 Eine Spaltenorientierte Datenbank ist ein Datenbankmanagementsystem, das seine Inhalte spaltenweise statt zeilenweise abspeichert. Das hat Vorteile bei Anwendungen wie ein Data-Warehouse, wo Aggregate über große Zahlen ähnlicher Elemente gebildet werden.
  • #22 Eine Spaltenorientierte Datenbank ist ein Datenbankmanagementsystem, das seine Inhalte spaltenweise statt zeilenweise abspeichert. Das hat Vorteile bei Anwendungen wie ein Data-Warehouse, wo Aggregate über große Zahlen ähnlicher Elemente gebildet werden.
  • #23 Eine Spaltenorientierte Datenbank ist ein Datenbankmanagementsystem, das seine Inhalte spaltenweise statt zeilenweise abspeichert. Das hat Vorteile bei Anwendungen wie ein Data-Warehouse, wo Aggregate über große Zahlen ähnlicher Elemente gebildet werden.
  • #24 Eine Spaltenorientierte Datenbank ist ein Datenbankmanagementsystem, das seine Inhalte spaltenweise statt zeilenweise abspeichert. Das hat Vorteile bei Anwendungen wie ein Data-Warehouse, wo Aggregate über große Zahlen ähnlicher Elemente gebildet werden.
  • #25 Volt db ehemals postgres
  • #26 Volt db ehemals postgres
  • #27 Screenshot austauschen + shclecht lesbar
  • #28 Volt db ehemals postgres
  • #29 Volt db ehemals postgres
  • #30 Volt db ehemals postgres
  • #31 Volt db ehemals postgres
  • #32 Volt db ehemals postgres
  • #33 Screenshot austauschen + shclecht lesbar
  • #34 Volt db ehemals postgres
  • #35 Volt db ehemals postgres