SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Leveraging the Power of Solr with Spark
Interaktive Datenanalyse mit Solr Cloud und Spark
Mainz, 21.04.2016 | Johannes Weigend | QAware GmbH
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Stellen Sie Ihre Fragen direkt oder
per Twitter mit dem Hashtag #cloudnativenerd
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Welches Problem wollen wir lösen?
■Interaktive Analyseanwendungen mit Laufzeiten unter einer Sekunde!
■Datenverarbeitung im Milliardenbereich (>109 Datensätze)
■Kontinuierlicher Import von Daten (Quasi-Echtzeit)
■Anwendungen nach dem Reactive Manifesto bauen
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Horizontal skalieren ist schwierig!
■Horizontale Skalierung von Funktionalität
■Trivial
■Loadbalancing von (zustandslosen) Services (Makro- / Microservices)
■Mehr Benutzer à Mehr Maschinen
■Nicht trivial
■Mehr Maschinen à Geringer Antwortzeit
■Horizontale Skalierung von Daten
■Trivial
■Lineare Aufteilung von Daten auf Maschinen
■Mehr Maschinen à Mehr Daten
■Nicht trivial
■Konstante Laufzeit bei steigendem Datenvolumen
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Hadoop liefert als Antworten auf horizontale
Skalierung von Daten und Funktionalität
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Die Verarbeitung von verteilten Daten kann langsam sein
9
Datenfluss
Read Read Read
Filter Filter Filter
Map Map Map
Reduce
foreach()
-> Minutes / Hours
HDFS	/	NFS	/	NoSQL
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Durch Indizieren und intelligente Suche entfällt das
vollständige Lesen der Ausgangsdaten
10
Filter
Search Search Search
Map Map Map
Reduce
DatenflussFilter Filter
foreach()
->	Seconds/Minutes
Search	/	NoSQL
Spark
Search Search Search
Map Map Map
Reduce
Distributed
Data
Cluster
Processing
Business Layer
Frontend
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
DEMO
Spark
1. Solr Cloud für Analyseanwendungen
Filter
Search Search Search
Map Map Map
Reduce
DatenflussFilter Filter
Search	/	NoSQL
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
■Suchoptimierte, Dokumentenoritentierte NoSQL Datenbank
■Ein Dokument ist eine Sammlung von Feldern (string, number, date, …)
■Einfache und Multiple Felder (Felder können Arrays sein)
■Geschachtelte Dokumente (Nested)
■Statisches und dynamisches Schema
■Mächtige Query-Sprache (Lucene)
■Horizontal Skalierbar (Solr Cloud)
■Verteilte Daten in Shards
■Resilent durch Replikation
■Mächtige Aggregationsfunktionen (Facets)
■Stabil—> V 6.0
14
Cloud
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Shard2
Die (T) Architektur von Solr Cloud
Solr Server
Zookeeper
Solr ServerSolr Server
Shard1
Zookeeper Zookeeper Zookeeper Cluster
Solr Cloud
Leader
Scale Out
Shard3
Replika8 Replika9
Shard5Shard4 Shard6 Shard8Shard7 Shard9
Replika2 Replika3 Replika5
Shards
Replicas
Collection
Replica4 Replica7 Replika1 Shard6
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Solr speichert alle Daten flach in einer “Tabelle“ (BigTable).
Die Suche ist mächtig und extrem performant.*
Kunde Bestellung
*1
Name Amount
Adresse Produkt
Typ ID Name Adresse Anzahl Produkt K2B
Kunde 1 K 1 A 1 - - [3,5]
Kunde 2 K 2 A 2 - - [4]
Bestellung 3 - - Z 1 P 1 [1]
Bestellung 4 - - Z 2 P 2 [2]
...
SolrDocument
SolrDocument
SolrDocument
SolrDocument
(*)	Bei	100	Mio Datansätzen pro	Shard liegen	die	Laufzeiten	im	Bereich	von	wenigen	Millisekunden	bis	zu	einer	Sekunde
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Eine lokale Solr Cloud kann einfach gestartet werden
■Schema anlegen und anpassen
■ Im Verzeichnis $SOLR_HOME/server/solr/configsets liegenBeispiel-Konfigurationen die kopiert
und angepasst werden koennen
■Solr starten
■Testen
cp $SOLR_HOME/server/solr/configset/basic_configs
$SOLR_HOME/server/solr/configsets/jax2016
$SOLR_HOME/bin/solr start –e cloud
curl localhost:8983/solr/jax2016/query?q=*:*
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Über die Solr Cloud Collection REST API können Shards
angelegt, verändert oder gelöscht werden.
■Collection anlegen
■Collection löschen
<<SOLR	URL>>/solr/admin/collections?action=DELETE&
name=ekgdata
<<SOLR	URL>>/solr/admin/collections?action=CREATE&
name=ekgdata&numShards=16&
replicationFactor=2&
maxShardsPerNode=8&
collection.configName=ekgdata
https://cwiki.apache.org/confluence/display/solr/Collections+API
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Bei einer verteilten Solr Cloud muss Zookeeper gestartet
werden und die Solr Konfigurationen geladen werden.
1.Starte Zookeeper auf 2n+1-Knoten (ungerade Anzahl)
2.Lade die Solr Konfiguration in den Zookeeper Cluster
3.Starte Solr Server im Cloud Modus auf n-Knoten mit Zookeeper Cluster
4.Erzeuge eine Collection mit Shards und Replicas unter Angabe des
Konfigurationsnamens in Zookeeper
$SOLR_HOME/bin/solr start –c -z 192.168.1.100:2181,192.168.1.101:2181,192.168.1.102
$SOLR_HOME/server/scripts/cloud-scripts$ ./zkcli.sh -cmd upconfig -zkhost
192.168.1.100:2181,192.168.1.101:2181,192.168.1.102 -confname ekgdata -solrhome
/opt/solr/server/solr -confdir /opt/solr/server/solr/configsets/ekgdata_configs/conf
$ZOO_HOME/bin/zkServer.sh start
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Bespiel: Solr Cloud für die Analyse von Versicherungsdaten
■Versicherungsdaten einer Autoversicherung mit den folgenden Feldern
Education IncomeGender
...
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
DEMO
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Solr unterstützt JSON Queries im HTTP-Post Header
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Mit Term Facets können Felder gruppiert und gezählt
werden.
23
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Function Facets sind Aggregationsfunktonen
24
http://yonik.com/solr-facet-functions/
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Facets können hierarchisch zu Pivot Facets geschachtelt
werden.
25
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Solr und SQL
■Solr 6 unterstützt verteiltes SQL in der Solr Cloud
■Der JDBC Treiber ist Teil des SolrJ Clients
■Eine Collection wird als Single Table abgebildet
■ Collection -> Table
■ SolrDocument -> Row
■ Field -> Column
■Stand April 2016: Keine Metadaten, keine Prepared Statements
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Resilience
■Die Anzahl der Replikas pro Shard kann beliebig hoch konfiguriert
werden (replication factor)
■Diese Anzahl korrespondiert mit der Anzahl der Server die im Betrieb
ausfallen können
■Zookeeper kann in mehreren Instanzen betrieben werden. Einer
Instanz wird automatisch der Status “Leader“ zugewiesen.
■Die Solr Cloud kennt per Konfiguration alle Zookeeper Instanzen.
Minimal muss ein Zookeeper erreichbar bleiben
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Alles super! – Oder?
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Alles Super! – Oder?
■Clientseitiges Weiterverarbeiten von Solr Dokumenten skaliert nicht
■Keine Möglichkeit eigene Businesslogik parallel in Solr auszuführen
■Die Ablage von großen Daten macht in Solr keinen Sinn
■Bilder
■Videos
■Binaries / large text documents
■Keine Schnittstellen zu Machine Learing, Statistik (R) ...
29
Spark
Distributed In-Memory Computing
mit Apache Spark
Filter
Search Search Search
Map Map Map
Reduce
DatenflussFilter Filter
Search	/	NoSQL
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
■Distributed Computing (100x schneller als Hadoop (M/R)
■Verteiltes Map/Reduce auf verteilten In-Memory Daten
■Programmiert in Scala (JVM)
■Java/Scala/Python APIs
■Verarbeitet Daten aus verteilten und nicht-verteilten Datenquellen
■Textfiles (accessible from all nodes)
■Hadoop File System (HDFS)
■Databases (JDBC)
■Solr per Lucidworks API
■...
31
READ	THIS:	https://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Cluster
JVM
Slave
Slave
JVM
JVM
JVM
Slave
Master / Yarn / Mesos
JVM
Executor
Executor
JVM
JVM
JVM
Executor
start
start
start
Task
Task(s)
Worker
Host
Worker
Host
Worker
Host
Master
Host
Spark
Context
MasterURL
Resilient
Distributed
Dataset
RDD
Driver Node
erzeugt
Driver Anwendung
Anwendungscode
nutzt
Partition
Task(s)
Partition
Task(s)
Partition
Die Spark Architektur im Überblick
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Ein erstes Spark Programm
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Spark Pattern 1: Verteilter Task mit Parametern
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Spark Pattern 2: Verteiltes Lesen aus externen Quellen
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Spark Pattern 3: Caching und Weiterverarbeitung als RDD
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
DEMO
Spark
Putting all together
Solr & Spark in Action
Filter
Search Search Search
Map Map Map
Reduce
DatenflussFilter Filter
Search	/	NoSQL
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Wie implementiert man readFromShard() mit Solr
■SolrJ: SolrStream
■ /export Handler kann Massendaten aus SOLR streamen
■ Unterstützt nur JSON Export (Kein Binary Format !)
■Oder: SolrJ Cursor Marks verwenden
■Oder: Eigenen Export Handler bauen (Nach dem obigen Vorbild)
http://localhost:8983/solr/jax2016/export?q=*:*&sort=id%20asc&fl=id&wt=xml
Filter
Search
Map
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
LucidWorks hat bereits eine fertige RDD Implementierung.
https://github.com/lucidworks/spark-solr
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
1
2
3
4
Lucidworks Solr-Spark	
Adapter	V	2.1
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Beispiele für Logfile Analyse mit Solr und Spark
■Histogramm aller Ausnahmen der Server A,B,C im Zeitraum D
■Schritt 1: Suche
■Solr Query (q=*Exception AND (server: A OR server:B OR server:C) AND timestamp
between [1.1.2015, 31.12.2015]
■Schritt 2: Erzeuge eine Map mit Key = << Name der Ausname >>,
Value = Anzahl mit Spark
■Spark Grouping
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH 44
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
DEMO
+
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Technische Daten – Intel NUC6i5SYK
46
6th	generation Intel®	Core™	i5-6260U	
processor with Intel®	Iris™	graphics
(1.9	GHz	up to 2.8	GHz	Turbo,	Dual	
Core,	4	MB	Cache,	15W	TDP)
CPU
32	GB	Dual-channel DDR4	SODIMMs
1.2V,	2133	MHz
RAM
256	GB		Samsung	M.2	internal	SSDDISK
à Der	Koffer	ist	so	leistungsfähig	wie	4	Laptops
8	Cores,	16	HT	Units,	128	GB	RAM,	1	TB	DiskTotal
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
47
Technische Cluster Architektur
NFS
Ubuntu Linux
Solr Cloud
Zookeeper
#1
Spark
Zeppelin
Master JVM Slave JVM
Executor JVM #1
Ubuntu Linux
Solr Cloud
Zookeeper
#2
Spark
Zeppelin
Master JVM #2 Slave JVM #2
Executor JVM #2
Ubuntu Linux
Solr Cloud
Spark
Master JVM #4 Slave JVM #4
Executor JVM #4
Ubuntu Linux
Solr Cloud
Zookeeper
#3
Spark
Master JVM #3 Slave JVM #3
Executor JVM #3
s1 s2 s3 s4
s5 s6 s7 s8
s13 s14 s15 s16
s9 s10 s11 s12
1
23
4
SPARK Worker
SOLR 5.3
48
Odroid XU4
2 GB RAM
64 GB eMMC Disk
Ubuntu Linux
70$
SPARK Worker
SOLR 5.3
SPARK Worker
SOLR 5.3
SPARK Worker
SOLR 5.3
SPARK Master
SOLR 5.3
SPARK Worker
ZOOKEEPER
40 Cores
10 GB RAM
320 GB eMMC Disk
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Zusammenfassung
■SOLR Cloud und Spark sind eine mächtige Kombination für
interaktive, Analyse- und Recherche-Anwendungen
■Die Herausforderungen für Entwickler sind hoch. Es gilt nach wie vor
das erste Gesetz der verteilten Verarbeitung: „Verteile nur wenn Du es
wirklich musst“
■100% Open Source
■Beide Bausteine lassen relativ einfach miteinander integrieren
■Falls ein Kaufprodukt auf der technischen Basis verwendet werden
soll, bietet sich Lucidworks Fusion an. Fusion integriert Solr und
Spark zu einer offenen Plattform und liefert professionellen
Produktsupport
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
@JohannesWeigend
@qaware
slideshare.net/qaware
blog.qaware.de
JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
Alle Demos & Technologien kann man heute Abend im Meetup
live anfassen. Herzliche Einladung!
Unter anderem mit Jake Mannix, Twitter/Lucidworks,
Apache Mahout Commiter, Solr und Spark Experte
Jörg Schad, Mesosphere, Experte für DCOS und
verteilte Betriebssysteme und dem Cloudcase ®

Contenu connexe

Tendances

Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache SolrAutomotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache SolrQAware GmbH
 
Making the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICMaking the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICQAware GmbH
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungQAware GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
LinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxLinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxSchlomo Schapiro
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesQAware GmbH
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsQAware GmbH
 
10 Gute Gruende - NetApp DevOps
10 Gute Gruende - NetApp DevOps10 Gute Gruende - NetApp DevOps
10 Gute Gruende - NetApp DevOpsNetApp_Germany
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusOPEN KNOWLEDGE GmbH
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Josef Adersberger
 
HashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess
HashiTalks: DACH - Die Verwendung von IaC im DevOps ProzessHashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess
HashiTalks: DACH - Die Verwendung von IaC im DevOps ProzessJochen Zehnder
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeMario-Leander Reimer
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15m1no
 
Mit OpenStack zur eigenen Cloud (OSDC 2012)
Mit OpenStack zur eigenen Cloud (OSDC 2012)Mit OpenStack zur eigenen Cloud (OSDC 2012)
Mit OpenStack zur eigenen Cloud (OSDC 2012)hastexo
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 

Tendances (19)

Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache SolrAutomotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache Solr
 
Making the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICMaking the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUIC
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
LinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxLinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und Kubernetes
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos Engineerings
 
10 Gute Gruende - NetApp DevOps
10 Gute Gruende - NetApp DevOps10 Gute Gruende - NetApp DevOps
10 Gute Gruende - NetApp DevOps
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API Gateways
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?
 
HashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess
HashiTalks: DACH - Die Verwendung von IaC im DevOps ProzessHashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess
HashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Serverless Survival Guide
Serverless Survival GuideServerless Survival Guide
Serverless Survival Guide
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15
 
Mit OpenStack zur eigenen Cloud (OSDC 2012)
Mit OpenStack zur eigenen Cloud (OSDC 2012)Mit OpenStack zur eigenen Cloud (OSDC 2012)
Mit OpenStack zur eigenen Cloud (OSDC 2012)
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 

En vedette

Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)Andreas Buckenhofer
 
Hands-on K8s: Deployments, Pods and Fun
Hands-on K8s: Deployments, Pods and FunHands-on K8s: Deployments, Pods and Fun
Hands-on K8s: Deployments, Pods and FunQAware GmbH
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and FunQAware GmbH
 
Lightweight developer provisioning with gradle and seu as-code
Lightweight developer provisioning with gradle and seu as-codeLightweight developer provisioning with gradle and seu as-code
Lightweight developer provisioning with gradle and seu as-codeQAware GmbH
 
JEE on DC/OS - MesosCon Europe
JEE on DC/OS - MesosCon EuropeJEE on DC/OS - MesosCon Europe
JEE on DC/OS - MesosCon EuropeQAware GmbH
 
Microservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesMicroservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesQAware GmbH
 
Cloud Native Unleashed
Cloud Native UnleashedCloud Native Unleashed
Cloud Native UnleashedQAware GmbH
 
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017Mario-Leander Reimer
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkQAware GmbH
 
Secure Architecture and Programming 101
Secure Architecture and Programming 101Secure Architecture and Programming 101
Secure Architecture and Programming 101QAware GmbH
 
Der Cloud Native Stack in a Nutshell
Der Cloud Native Stack in a NutshellDer Cloud Native Stack in a Nutshell
Der Cloud Native Stack in a NutshellQAware GmbH
 
Clickstream Analysis with Spark - Understanding Visitors in Real Time
Clickstream Analysis with Spark - Understanding Visitors in Real TimeClickstream Analysis with Spark - Understanding Visitors in Real Time
Clickstream Analysis with Spark - Understanding Visitors in Real TimeQAware GmbH
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)QAware GmbH
 
Real World Analytics with Solr Cloud and Spark
Real World Analytics with Solr Cloud and SparkReal World Analytics with Solr Cloud and Spark
Real World Analytics with Solr Cloud and SparkQAware GmbH
 
From pets to cattle - powered by CoreOS, docker, Mesos & nginx
From pets to cattle - powered by CoreOS, docker, Mesos & nginxFrom pets to cattle - powered by CoreOS, docker, Mesos & nginx
From pets to cattle - powered by CoreOS, docker, Mesos & nginxQAware GmbH
 
Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache SolrAutomotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache SolrQAware GmbH
 
Vamp - The anti-fragilitiy platform for digital services
Vamp - The anti-fragilitiy platform for digital servicesVamp - The anti-fragilitiy platform for digital services
Vamp - The anti-fragilitiy platform for digital servicesQAware GmbH
 
Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!QAware GmbH
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
Clickstream Analysis with Apache Spark
Clickstream Analysis with Apache SparkClickstream Analysis with Apache Spark
Clickstream Analysis with Apache SparkQAware GmbH
 

En vedette (20)

Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)Wide-column Stores für Architekten (HBase, Cassandra)
Wide-column Stores für Architekten (HBase, Cassandra)
 
Hands-on K8s: Deployments, Pods and Fun
Hands-on K8s: Deployments, Pods and FunHands-on K8s: Deployments, Pods and Fun
Hands-on K8s: Deployments, Pods and Fun
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
Lightweight developer provisioning with gradle and seu as-code
Lightweight developer provisioning with gradle and seu as-codeLightweight developer provisioning with gradle and seu as-code
Lightweight developer provisioning with gradle and seu as-code
 
JEE on DC/OS - MesosCon Europe
JEE on DC/OS - MesosCon EuropeJEE on DC/OS - MesosCon Europe
JEE on DC/OS - MesosCon Europe
 
Microservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesMicroservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing Microservices
 
Cloud Native Unleashed
Cloud Native UnleashedCloud Native Unleashed
Cloud Native Unleashed
 
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
Everything as-code. Polyglotte Entwicklung in der Praxis. #oop2017
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with Spark
 
Secure Architecture and Programming 101
Secure Architecture and Programming 101Secure Architecture and Programming 101
Secure Architecture and Programming 101
 
Der Cloud Native Stack in a Nutshell
Der Cloud Native Stack in a NutshellDer Cloud Native Stack in a Nutshell
Der Cloud Native Stack in a Nutshell
 
Clickstream Analysis with Spark - Understanding Visitors in Real Time
Clickstream Analysis with Spark - Understanding Visitors in Real TimeClickstream Analysis with Spark - Understanding Visitors in Real Time
Clickstream Analysis with Spark - Understanding Visitors in Real Time
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)
 
Real World Analytics with Solr Cloud and Spark
Real World Analytics with Solr Cloud and SparkReal World Analytics with Solr Cloud and Spark
Real World Analytics with Solr Cloud and Spark
 
From pets to cattle - powered by CoreOS, docker, Mesos & nginx
From pets to cattle - powered by CoreOS, docker, Mesos & nginxFrom pets to cattle - powered by CoreOS, docker, Mesos & nginx
From pets to cattle - powered by CoreOS, docker, Mesos & nginx
 
Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache SolrAutomotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache Solr
 
Vamp - The anti-fragilitiy platform for digital services
Vamp - The anti-fragilitiy platform for digital servicesVamp - The anti-fragilitiy platform for digital services
Vamp - The anti-fragilitiy platform for digital services
 
Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
Clickstream Analysis with Apache Spark
Clickstream Analysis with Apache SparkClickstream Analysis with Apache Spark
Clickstream Analysis with Apache Spark
 

Similaire à Leveraging the Power of Solr with Spark

Raus aus dem Data Vault - Virtualisierung und Logical Warheouse
Raus aus dem Data Vault - Virtualisierung und Logical WarheouseRaus aus dem Data Vault - Virtualisierung und Logical Warheouse
Raus aus dem Data Vault - Virtualisierung und Logical WarheouseTorsten Glunde
 
SAP-Monitore von SERKEM
SAP-Monitore von SERKEMSAP-Monitore von SERKEM
SAP-Monitore von SERKEMSERKEM GmbH
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 
10 Gute Gruende - NetApp fuer IoT
10 Gute Gruende - NetApp fuer IoT10 Gute Gruende - NetApp fuer IoT
10 Gute Gruende - NetApp fuer IoTNetApp_Germany
 
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformAnalytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformRising Media Ltd.
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013NETWAYS
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Niels de Bruijn
 
Amazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsAmazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsLothar Wieske
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSroot360 GmbH
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?QAware GmbH
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer   OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer NETWAYS
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesQAware GmbH
 
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)NETWAYS
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataDai Yang
 

Similaire à Leveraging the Power of Solr with Spark (20)

Warum sap hana sql data warehousing
Warum sap hana sql data warehousingWarum sap hana sql data warehousing
Warum sap hana sql data warehousing
 
Raus aus dem Data Vault - Virtualisierung und Logical Warheouse
Raus aus dem Data Vault - Virtualisierung und Logical WarheouseRaus aus dem Data Vault - Virtualisierung und Logical Warheouse
Raus aus dem Data Vault - Virtualisierung und Logical Warheouse
 
Best Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in ContainernBest Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in Containern
 
SAP-Monitore von SERKEM
SAP-Monitore von SERKEMSAP-Monitore von SERKEM
SAP-Monitore von SERKEM
 
Performance-Analyse mit Bordmitteln
Performance-Analyse mit BordmittelnPerformance-Analyse mit Bordmitteln
Performance-Analyse mit Bordmitteln
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
10 Gute Gruende - NetApp fuer IoT
10 Gute Gruende - NetApp fuer IoT10 Gute Gruende - NetApp fuer IoT
10 Gute Gruende - NetApp fuer IoT
 
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformAnalytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 
Amazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsAmazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud Computings
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWS
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer   OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
 
check_sap_health
check_sap_healthcheck_sap_health
check_sap_health
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
 
abaCal revolutioniert die Formel-Berechnungen im Unternehmen
abaCal revolutioniert die Formel-Berechnungen im UnternehmenabaCal revolutioniert die Formel-Berechnungen im Unternehmen
abaCal revolutioniert die Formel-Berechnungen im Unternehmen
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global Data
 

Plus de QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 

Plus de QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

Leveraging the Power of Solr with Spark

  • 1. Leveraging the Power of Solr with Spark Interaktive Datenanalyse mit Solr Cloud und Spark Mainz, 21.04.2016 | Johannes Weigend | QAware GmbH
  • 2. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Stellen Sie Ihre Fragen direkt oder per Twitter mit dem Hashtag #cloudnativenerd
  • 3. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Welches Problem wollen wir lösen? ■Interaktive Analyseanwendungen mit Laufzeiten unter einer Sekunde! ■Datenverarbeitung im Milliardenbereich (>109 Datensätze) ■Kontinuierlicher Import von Daten (Quasi-Echtzeit) ■Anwendungen nach dem Reactive Manifesto bauen
  • 4. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
  • 5. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
  • 6. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Horizontal skalieren ist schwierig! ■Horizontale Skalierung von Funktionalität ■Trivial ■Loadbalancing von (zustandslosen) Services (Makro- / Microservices) ■Mehr Benutzer à Mehr Maschinen ■Nicht trivial ■Mehr Maschinen à Geringer Antwortzeit ■Horizontale Skalierung von Daten ■Trivial ■Lineare Aufteilung von Daten auf Maschinen ■Mehr Maschinen à Mehr Daten ■Nicht trivial ■Konstante Laufzeit bei steigendem Datenvolumen
  • 7. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Hadoop liefert als Antworten auf horizontale Skalierung von Daten und Funktionalität
  • 8. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
  • 9. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Die Verarbeitung von verteilten Daten kann langsam sein 9 Datenfluss Read Read Read Filter Filter Filter Map Map Map Reduce foreach() -> Minutes / Hours HDFS / NFS / NoSQL
  • 10. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Durch Indizieren und intelligente Suche entfällt das vollständige Lesen der Ausgangsdaten 10 Filter Search Search Search Map Map Map Reduce DatenflussFilter Filter foreach() -> Seconds/Minutes Search / NoSQL
  • 11. Spark Search Search Search Map Map Map Reduce Distributed Data Cluster Processing Business Layer Frontend
  • 12. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH DEMO
  • 13. Spark 1. Solr Cloud für Analyseanwendungen Filter Search Search Search Map Map Map Reduce DatenflussFilter Filter Search / NoSQL
  • 14. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH ■Suchoptimierte, Dokumentenoritentierte NoSQL Datenbank ■Ein Dokument ist eine Sammlung von Feldern (string, number, date, …) ■Einfache und Multiple Felder (Felder können Arrays sein) ■Geschachtelte Dokumente (Nested) ■Statisches und dynamisches Schema ■Mächtige Query-Sprache (Lucene) ■Horizontal Skalierbar (Solr Cloud) ■Verteilte Daten in Shards ■Resilent durch Replikation ■Mächtige Aggregationsfunktionen (Facets) ■Stabil—> V 6.0 14 Cloud
  • 15. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Shard2 Die (T) Architektur von Solr Cloud Solr Server Zookeeper Solr ServerSolr Server Shard1 Zookeeper Zookeeper Zookeeper Cluster Solr Cloud Leader Scale Out Shard3 Replika8 Replika9 Shard5Shard4 Shard6 Shard8Shard7 Shard9 Replika2 Replika3 Replika5 Shards Replicas Collection Replica4 Replica7 Replika1 Shard6
  • 16. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Solr speichert alle Daten flach in einer “Tabelle“ (BigTable). Die Suche ist mächtig und extrem performant.* Kunde Bestellung *1 Name Amount Adresse Produkt Typ ID Name Adresse Anzahl Produkt K2B Kunde 1 K 1 A 1 - - [3,5] Kunde 2 K 2 A 2 - - [4] Bestellung 3 - - Z 1 P 1 [1] Bestellung 4 - - Z 2 P 2 [2] ... SolrDocument SolrDocument SolrDocument SolrDocument (*) Bei 100 Mio Datansätzen pro Shard liegen die Laufzeiten im Bereich von wenigen Millisekunden bis zu einer Sekunde
  • 17. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Eine lokale Solr Cloud kann einfach gestartet werden ■Schema anlegen und anpassen ■ Im Verzeichnis $SOLR_HOME/server/solr/configsets liegenBeispiel-Konfigurationen die kopiert und angepasst werden koennen ■Solr starten ■Testen cp $SOLR_HOME/server/solr/configset/basic_configs $SOLR_HOME/server/solr/configsets/jax2016 $SOLR_HOME/bin/solr start –e cloud curl localhost:8983/solr/jax2016/query?q=*:*
  • 18. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Über die Solr Cloud Collection REST API können Shards angelegt, verändert oder gelöscht werden. ■Collection anlegen ■Collection löschen <<SOLR URL>>/solr/admin/collections?action=DELETE& name=ekgdata <<SOLR URL>>/solr/admin/collections?action=CREATE& name=ekgdata&numShards=16& replicationFactor=2& maxShardsPerNode=8& collection.configName=ekgdata https://cwiki.apache.org/confluence/display/solr/Collections+API
  • 19. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Bei einer verteilten Solr Cloud muss Zookeeper gestartet werden und die Solr Konfigurationen geladen werden. 1.Starte Zookeeper auf 2n+1-Knoten (ungerade Anzahl) 2.Lade die Solr Konfiguration in den Zookeeper Cluster 3.Starte Solr Server im Cloud Modus auf n-Knoten mit Zookeeper Cluster 4.Erzeuge eine Collection mit Shards und Replicas unter Angabe des Konfigurationsnamens in Zookeeper $SOLR_HOME/bin/solr start –c -z 192.168.1.100:2181,192.168.1.101:2181,192.168.1.102 $SOLR_HOME/server/scripts/cloud-scripts$ ./zkcli.sh -cmd upconfig -zkhost 192.168.1.100:2181,192.168.1.101:2181,192.168.1.102 -confname ekgdata -solrhome /opt/solr/server/solr -confdir /opt/solr/server/solr/configsets/ekgdata_configs/conf $ZOO_HOME/bin/zkServer.sh start
  • 20. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Bespiel: Solr Cloud für die Analyse von Versicherungsdaten ■Versicherungsdaten einer Autoversicherung mit den folgenden Feldern Education IncomeGender ...
  • 21. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH DEMO
  • 22. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Solr unterstützt JSON Queries im HTTP-Post Header
  • 23. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Mit Term Facets können Felder gruppiert und gezählt werden. 23
  • 24. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Function Facets sind Aggregationsfunktonen 24 http://yonik.com/solr-facet-functions/
  • 25. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Facets können hierarchisch zu Pivot Facets geschachtelt werden. 25
  • 26. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Solr und SQL ■Solr 6 unterstützt verteiltes SQL in der Solr Cloud ■Der JDBC Treiber ist Teil des SolrJ Clients ■Eine Collection wird als Single Table abgebildet ■ Collection -> Table ■ SolrDocument -> Row ■ Field -> Column ■Stand April 2016: Keine Metadaten, keine Prepared Statements
  • 27. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Resilience ■Die Anzahl der Replikas pro Shard kann beliebig hoch konfiguriert werden (replication factor) ■Diese Anzahl korrespondiert mit der Anzahl der Server die im Betrieb ausfallen können ■Zookeeper kann in mehreren Instanzen betrieben werden. Einer Instanz wird automatisch der Status “Leader“ zugewiesen. ■Die Solr Cloud kennt per Konfiguration alle Zookeeper Instanzen. Minimal muss ein Zookeeper erreichbar bleiben
  • 28. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Alles super! – Oder?
  • 29. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Alles Super! – Oder? ■Clientseitiges Weiterverarbeiten von Solr Dokumenten skaliert nicht ■Keine Möglichkeit eigene Businesslogik parallel in Solr auszuführen ■Die Ablage von großen Daten macht in Solr keinen Sinn ■Bilder ■Videos ■Binaries / large text documents ■Keine Schnittstellen zu Machine Learing, Statistik (R) ... 29
  • 30. Spark Distributed In-Memory Computing mit Apache Spark Filter Search Search Search Map Map Map Reduce DatenflussFilter Filter Search / NoSQL
  • 31. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH ■Distributed Computing (100x schneller als Hadoop (M/R) ■Verteiltes Map/Reduce auf verteilten In-Memory Daten ■Programmiert in Scala (JVM) ■Java/Scala/Python APIs ■Verarbeitet Daten aus verteilten und nicht-verteilten Datenquellen ■Textfiles (accessible from all nodes) ■Hadoop File System (HDFS) ■Databases (JDBC) ■Solr per Lucidworks API ■... 31 READ THIS: https://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf
  • 32. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Cluster JVM Slave Slave JVM JVM JVM Slave Master / Yarn / Mesos JVM Executor Executor JVM JVM JVM Executor start start start Task Task(s) Worker Host Worker Host Worker Host Master Host Spark Context MasterURL Resilient Distributed Dataset RDD Driver Node erzeugt Driver Anwendung Anwendungscode nutzt Partition Task(s) Partition Task(s) Partition Die Spark Architektur im Überblick
  • 33. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Ein erstes Spark Programm
  • 34. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Spark Pattern 1: Verteilter Task mit Parametern
  • 35. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Spark Pattern 2: Verteiltes Lesen aus externen Quellen
  • 36. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Spark Pattern 3: Caching und Weiterverarbeitung als RDD
  • 37. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
  • 38. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH DEMO
  • 39. Spark Putting all together Solr & Spark in Action Filter Search Search Search Map Map Map Reduce DatenflussFilter Filter Search / NoSQL
  • 40. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Wie implementiert man readFromShard() mit Solr ■SolrJ: SolrStream ■ /export Handler kann Massendaten aus SOLR streamen ■ Unterstützt nur JSON Export (Kein Binary Format !) ■Oder: SolrJ Cursor Marks verwenden ■Oder: Eigenen Export Handler bauen (Nach dem obigen Vorbild) http://localhost:8983/solr/jax2016/export?q=*:*&sort=id%20asc&fl=id&wt=xml Filter Search Map
  • 41. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH LucidWorks hat bereits eine fertige RDD Implementierung. https://github.com/lucidworks/spark-solr
  • 42. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH 1 2 3 4 Lucidworks Solr-Spark Adapter V 2.1
  • 43. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Beispiele für Logfile Analyse mit Solr und Spark ■Histogramm aller Ausnahmen der Server A,B,C im Zeitraum D ■Schritt 1: Suche ■Solr Query (q=*Exception AND (server: A OR server:B OR server:C) AND timestamp between [1.1.2015, 31.12.2015] ■Schritt 2: Erzeuge eine Map mit Key = << Name der Ausname >>, Value = Anzahl mit Spark ■Spark Grouping
  • 44. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH 44
  • 45. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH DEMO +
  • 46. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Technische Daten – Intel NUC6i5SYK 46 6th generation Intel® Core™ i5-6260U processor with Intel® Iris™ graphics (1.9 GHz up to 2.8 GHz Turbo, Dual Core, 4 MB Cache, 15W TDP) CPU 32 GB Dual-channel DDR4 SODIMMs 1.2V, 2133 MHz RAM 256 GB Samsung M.2 internal SSDDISK à Der Koffer ist so leistungsfähig wie 4 Laptops 8 Cores, 16 HT Units, 128 GB RAM, 1 TB DiskTotal
  • 47. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH 47 Technische Cluster Architektur NFS Ubuntu Linux Solr Cloud Zookeeper #1 Spark Zeppelin Master JVM Slave JVM Executor JVM #1 Ubuntu Linux Solr Cloud Zookeeper #2 Spark Zeppelin Master JVM #2 Slave JVM #2 Executor JVM #2 Ubuntu Linux Solr Cloud Spark Master JVM #4 Slave JVM #4 Executor JVM #4 Ubuntu Linux Solr Cloud Zookeeper #3 Spark Master JVM #3 Slave JVM #3 Executor JVM #3 s1 s2 s3 s4 s5 s6 s7 s8 s13 s14 s15 s16 s9 s10 s11 s12 1 23 4
  • 48. SPARK Worker SOLR 5.3 48 Odroid XU4 2 GB RAM 64 GB eMMC Disk Ubuntu Linux 70$ SPARK Worker SOLR 5.3 SPARK Worker SOLR 5.3 SPARK Worker SOLR 5.3 SPARK Master SOLR 5.3 SPARK Worker ZOOKEEPER 40 Cores 10 GB RAM 320 GB eMMC Disk
  • 49. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH
  • 50. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Zusammenfassung ■SOLR Cloud und Spark sind eine mächtige Kombination für interaktive, Analyse- und Recherche-Anwendungen ■Die Herausforderungen für Entwickler sind hoch. Es gilt nach wie vor das erste Gesetz der verteilten Verarbeitung: „Verteile nur wenn Du es wirklich musst“ ■100% Open Source ■Beide Bausteine lassen relativ einfach miteinander integrieren ■Falls ein Kaufprodukt auf der technischen Basis verwendet werden soll, bietet sich Lucidworks Fusion an. Fusion integriert Solr und Spark zu einer offenen Plattform und liefert professionellen Produktsupport
  • 51. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH @JohannesWeigend @qaware slideshare.net/qaware blog.qaware.de
  • 52. JAX 2016 Mainz | 21.04.2016 | Johannes Weigend | © QAware GmbH Alle Demos & Technologien kann man heute Abend im Meetup live anfassen. Herzliche Einladung! Unter anderem mit Jake Mannix, Twitter/Lucidworks, Apache Mahout Commiter, Solr und Spark Experte Jörg Schad, Mesosphere, Experte für DCOS und verteilte Betriebssysteme und dem Cloudcase ®