Berlin Buzzwords – Day 2 – You know, for search. Querying 24 Billion Records in 900ms.

Welche Punkte müssen beim Design von skalierbaren HighLoad-Suchmaschinen beachtet werden?

  • Der erste Prototype wurde auf  Amazon EC2
  • Basis ist ElasticSearch als DocumentStore
  • In diese wurde die Logfiles (Tweets, …) importiert
  • Hadoop MapReduce wurde benutzt um diese Daten in ElasticSearch zu importieren
  • Zippen und Etnzippen von Dateien hat sich als Performance-Problem heraus gestellt
  • Danach erfolgte eine Aufteilung auf 6 dedizierten Nodes auf die per Puppet ElasticSearch aufgesetzt und gestartet wurde
  • Dann Umstellung auf 3 Application-Server, 6 Master Nodes und 120 Client Nodes und 8 Hadoop Nodes
  • Mit Hilfe von MapReduce wurde die Anzahl der Nachrichten verringert und damit die HW-Anforderungen verringert, da diese zu teuer sind
  • Ausserdem erfolgt ein Wechsel zu SSD Disks
  • Jenkins wurde zur Steuerung des Workflows eingesetzt
  • Memchace wird mit vorberechneten Daten gefüllt
GD Star Rating
loading...

Berlin Buzzwords – Day 2 – Hydra – an open source processing framework

Dieser Talk behandelt Möglichkeiten des Document-processing Frameworks Hydra und dessen Interaktion mit Hadoop.

  • Das Problem ist, das Texte oft keine Metadaten enthalten, aber z.B. der Titel eines Newsartikels natürlich wichtiger für die Relevanz ist
  • Daher müssen solche Texte „enriched“ werden: Sprachdetection, Titelsuche, …
  • Ausserdem müssen nicht gewünschte Elemente und Dokumente entfernt werden
  • Diese beiden Dinge werden meist in einer sog. Pipeline vorgenommen (z.B. via OpenPipeline)
  • Momentane Lösungen skalieren nur sehr schlecht
  • Hydra’s Design Ziele: Skalierung (auch bereits bei kleinen Systemen), Fehlertoleranz, Robustheit, Einfachheit der Entwicklung
  • Hydra basiert auf eine Cloud-Architektur und benutzt intern MongoDB
  • Es können für verschiedene Dokumenttypen / -attribute verschiedene Workflows definiert werden
  • Es kann mit anderen Systemen interagieren und so z.B. den Pagerank eines Dokumentes via Hadoop bestimmen
  • Diese Workflows können per UI administriert werden
  • Hydra ist OpenSource und auf GitHub zu finden
GD Star Rating
loading...

Berlin Buzzwords – Day 1 – Scalability Challenges in Big Data Science

Welche Herausforderungen gibt es bei der Skalierung / Sharding bei der Verarbeitung von großen Datenmengen

  • Normalerweise beginnt es damit, dass in einer DB viele Daten sind und die Anforderung kommt, diese Daten auszuwerten, z.B. User zu klassifizieren
  • Schritt eins ist es eine skalierbare DB zu finden: Cassandra, Sharded MySQL
  • Dann Mulithreading als nächstes: akka, ActiveMQ, …
  • Aber besser ist es direkt auch nach paralleler Verarbeitung und Speicherung zu schauen: Hadoop
  • MapReduce funktioniert auch für einige Machine-learning Algorithmen, z.B. k-means Clustering
  • Zum Training mit großer Traingdaten gibt es z.B. den Stochastic Gradient Descent und den vowpal wabbit Algorithmus
  • Es gibt noch andere Skalierungsansätze: Pregel, Aktoren und Stream-Processing die man ja nach Anwendungsfall aussuchen muss
  • Darüber hinaus gibt es noch Stream Mining , um große Realtime-Datenmengen zu analysieren und im Speicher zu halten. Die Idee dahinter ist, nur die relevanten Daten aufzubewahren. Z.B. nur die 100k aktivsten Twitter-Accounts, der Rest wird verworfen. Alternative ist ein exponentieller Abfall, um z.B. Aktivitäten, die älter sind aufzubewahren.
  • Count-min Sketches sind ein weiterer Weg, Daten verteilt zu berechnen und zentral einfach auszuwerten.
GD Star Rating
loading...