Big Data

Manuskript und Linkliste zu meinem Vortrag am Software Freedom Day 2014 in Köln (20. September 2014).

Big Data

Definion

Wikipedia:

Gartner (2011): die drei “V”

Oft ergänzt durch: High Veracity (Schwankung der Datenqualität)

Mechanismen

Datenspeicherung

Datenverarbeitung

Fehlertoleranz

Big Data vs. SQL

SQL Datenbanken:

Big Data

1 GiB  =          1.073.741.824 Bytes
1 PiB  =  1.125.899.906.842.624 Bytes

Big Data vs. Data Warehousing

Data Warehouse:

Big Data

Einsatzbereiche

Datenmengen

Institution ungefähre Datenmenge
CERN LHC 1 PByte/s (Peak)
NSA 29 PByte/d
Facebook 300 PByte
Google Crawler 20 PByte/d (2008)
eBay 5 PByte (bis Nov. 2008)
Twitter 80 GByte/d

[Quelle: c’t 17/ 2014, S. 133]

Algorithmen

Kritik

MapReduce

Programmiermodell für nebenläufige Berechnungen mit großen Datenmengen

Vorgestellt von Google (2004):
Jeffrey Dean and Sanjay Ghemawat: MapReduce – Simplified Data Processing on Large Clusters. Symposium on Operating System Design and Implementation (OSDI), San Francisco, 2004

Ablauf:

Map Reduce arbeitet mit Key-Value Paaren.

Phase 1: Map

Phase 2: Reduce

Map- und Reduce Funktionen werden jeweils parallel ausgeführt.

Key-Value Datenbanken

Optimiert für schnelles

Nicht optimiert/geeignet für

Beispiel: Finden der Häufigkeiten von Wörtern in einem Text

Beispieltext:

War einmal ein Bumerang
War ein weniges zu lang
Bumerang flog ein Stück
Aber kam nicht mehr zurück
Publikum noch stundenlang
Wartete auf Bumerang

[Joachim Ringelnatz]

Apache Hadoop

Steckbrief

Aufbau

HDFS

Beispiel in Go

import (
       "strings"
  gmr  "github.com/vistarmedia/gossamr"
)

type WordCount struct{}

func (wc *WordCount) Map(p int64, line string, c gmr.Collector) error {
  for _, word := range strings.Fields(line) {
    c.Collect(strings.ToLower(word), int64(1))
  }
  return nil
}

func (wc *WordCount) Reduce(word string, counts chan int64, c gmr.Collector) error {
  var sum int64 = 0
  for v := range counts {
    sum += v
  }
  c.Collect(sum, word)
  return nil
}

[Quelle: http://labs.vistarmedia.com/2014/07/29/hadoop-and-go.html]

Hive + HiveQL

SELECT word, COUNT(word)
FROM text
GROUP BY(word)

Hadoop – Erweiterungen

Apache Mahout

Apache Hama

Apache Spark

Apache Hadoop 2