MongoDB – Big Data mit Open Source 
CommitterConf Essen 2014 29. Oktober 2014 
Tilman Beitter 
Linux Consultant & Trainer ...
Vorstellung B1 Systems 
gegründet 2004 
primär Linux/Open Source-Themen 
national & international tätig 
über 60 Mitarbeit...
Schwerpunkte 
Virtualisierung (XEN, KVM & RHEV) 
Systemmanagement (Spacewalk, Red Hat Satellite, SUSE 
Manager) 
Konfigura...
Partner 
B1 Systems GmbH MongoDB – Big Data mit Open Source 4 / 48
Einführung in MongoDB 
B1 Systems GmbH MongoDB – Big Data mit Open Source 5 / 48
Was ist MongoDB? 
Open Source NoSQL Datenbank 
schemafrei 
skalierbar 
dokumentenorientiert 
entwickelt durch MongoDB Inc....
Vergleich RDBMS und NoSQL 
Vergleich RDBMS und MongoDB-NoSQL 
RDBMS NoSQL 
Database Database 
Table Collection 
Index Inde...
NoSQL 
„Not Only SQL“ 
nicht relational 
keine Tabellenschemata 
Vermeidung von JOINs 
horizontale Skalierung 
B1 Systems ...
Das BSON Format 
„Binary JSON“ 
bietet mehr Datentypen als JSON 
ermöglicht Speicherung von Binärdaten 
entwickelt für Mon...
Das BSON Format 
Beispieldokument im BSON-Format: 
{ 
"Benutzername": "linus.torvalds", 
"Name": { 
"Vorname": "linus", 
"...
Systemkonfiguration 
B1 Systems GmbH MongoDB – Big Data mit Open Source 11 / 48
Hardwarevoraussetzungen 
Minimale Systemanforderungen: 
Architektur: 
64bit Betriebssystem 
Multicore CPU 
Arbeitsspeicher...
Basiskonfiguration 
Anpassung der Systemkonfiguration 
Ulimits 
Readahead 
Swap 
Filesystem 
Hugepages 
B1 Systems GmbH Mo...
Dateien und Ports 
Hauptkonfigurationsdatei: /etc/mongodb.conf 
Logdatei: /var/log/mongodb/mongodb.log 
Standardports (TCP...
Komponenten der MongoDB 
B1 Systems GmbH MongoDB – Big Data mit Open Source 15 / 48
Komponenten und Begrifflichkeiten 1/2 
mongod 
mongos 
ConfigServer 
ReplicaSets 
Sharding 
B1 Systems GmbH MongoDB – Big ...
Komponenten und Begrifflichkeiten 2/2 
Abbildung : MongoDB Standalone/ReplicaSet 
B1 Systems GmbH MongoDB – Big Data mit O...
Aufbau – MongoDB Standalone 
B1 Systems GmbH MongoDB – Big Data mit Open Source 18 / 48
Standalone-Instanz 
Testzwecke 
Entwicklung 
kleine Applikationen (keine Redundanz!) 
B1 Systems GmbH MongoDB – Big Data m...
Konfiguration Standalone 
Basiskonfiguration: 
# cat /etc/mongodb.conf 
fork = true 
port = 27017 
bind_ip = 127.0.0.1 
db...
Authentifizierung 1/3 
Authentifizierung in Basiskonfiguration inaktiv 
Benutzerauthentifizierung pro Datenbank 
Rechtever...
Authentifizierung 2/3 
Anlegen Admin-User zur Aktivierung des Auth-Systems: 
$ mongo admin 
connecting to: admin 
> db.add...
Authentifizierung 3/3 
Anlage eines Applikationsbenutzers: 
$ mongo admin -u admin -p 
connecting to: admin 
> use custome...
Liveaufbau Standalone 
B1 Systems GmbH MongoDB – Big Data mit Open Source 24 / 48
Aufbau – MongoDB ReplicaSet 
B1 Systems GmbH MongoDB – Big Data mit Open Source 25 / 48
MongoDB ReplicaSet 1/4 
bietet Redundanz 
kann Kapazität bei Reads erhöhen 
erleichtert Backupstrategien und Restores 
bes...
MongoDB ReplicaSet 2/4 
B1 Systems GmbH MongoDB – Big Data mit Open Source 27 / 48
MongoDB ReplicaSet 3/4 
B1 Systems GmbH MongoDB – Big Data mit Open Source 28 / 48
MongoDB ReplicaSet 4/4 
B1 Systems GmbH MongoDB – Big Data mit Open Source 29 / 48
Konfiguration ReplicaSet 
Basiskonfiguration: 
# cat /etc/mongodb.conf 
fork = true 
port = 27017 
bind_ip = 127.0.0.1 
db...
Konfiguration ReplicaSet 
Für die interne Authentifizierung der einzelnen Clusterkomponenten 
wird ein Authkey erstellt: 
...
Initialisierung ReplicaSet 
Basiskonfiguration: 
$ mongo admin -u admin -p 
> newSet = { _id: ’rs00’, members: [ 
... {_id...
Liveaufbau ReplicaSet 
B1 Systems GmbH MongoDB – Big Data mit Open Source 33 / 48
Aufbau – MongoDB ShardedCluster 
B1 Systems GmbH MongoDB – Big Data mit Open Source 34 / 48
MongoDB ShardedCluster 1/5 
bietet vertikale Skalierbarkeit 
kann Kapazität von Writes erhöhen 
erweitert verfügbaren Spei...
MongoDB ShardedCluster 2/5 
Minimalsetup für einen redundanten MongoDB Cluster: 
2 ReplicaSets mit jeweils 3 mongod-Instan...
MongoDB ShardedCluster 3/5 
Abbildung : Sharded Cluster 
B1 Systems GmbH MongoDB – Big Data mit Open Source 37 / 48
MongoDB ShardedCluster 4/5 
Abbildung : Sharded Cluster - Beispiel 2 
B1 Systems GmbH MongoDB – Big Data mit Open Source 3...
MongoDB ShardedCluster 5/5 
Abbildung : Sharded Cluster - Beispiel 3 
B1 Systems GmbH MongoDB – Big Data mit Open Source 3...
Konfiguration ConfigServer 
Basiskonfiguration: 
# cat /etc/mongodb.conf 
fork = true 
port = 27019 
bind_ip = 127.0.0.1 
...
Konfiguration MongoS 
Basiskonfiguration: 
# cat /etc/mongodb.conf 
fork = true 
bind_ip = 127.0.0.1 
port = 27017 
keyFil...
Initialisierung Cluster 1/2 
Anlegen Adminuser Cluster: 
$ mongo admin 
connecting to: admin 
mongos> db.addUser("admin", ...
Initialisierung Cluster 2/2 
Anlegen Adminuser Cluster: 
$ mongo admin -u admin -p 
connecting to: admin 
mongos> use conf...
Aktivierung Sharding 
Anlegen Adminuser Cluster: 
mongos> sh.enableSharding("demodata") 
{ "ok" : 1 } 
mongos> sh.shardCol...
Liveaufbau ReplicaSet 
B1 Systems GmbH MongoDB – Big Data mit Open Source 45 / 48
Optionale Komponenten 
B1 Systems GmbH MongoDB – Big Data mit Open Source 46 / 48
Optionale Komponenten 
Arbiter 
Hidden Member 
Delayed Member 
B1 Systems GmbH MongoDB – Big Data mit Open Source 47 / 48
Vielen Dank für Ihre Aufmerksamkeit! 
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de 
oder +49 (0)8457 - ...
Nächste SlideShare
Wird geladen in …5
×

MongoDB - Big Data mit Open Source

576 Aufrufe

Veröffentlicht am

MongoDB - Big Data mit Open Source

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
576
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
13
Aktionen
Geteilt
0
Downloads
12
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

MongoDB - Big Data mit Open Source

  1. 1. MongoDB – Big Data mit Open Source CommitterConf Essen 2014 29. Oktober 2014 Tilman Beitter Linux Consultant & Trainer B1 Systems GmbH beitter@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
  2. 2. Vorstellung B1 Systems gegründet 2004 primär Linux/Open Source-Themen national & international tätig über 60 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen B1 Systems GmbH MongoDB – Big Data mit Open Source 2 / 48
  3. 3. Schwerpunkte Virtualisierung (XEN, KVM & RHEV) Systemmanagement (Spacewalk, Red Hat Satellite, SUSE Manager) Konfigurationsmanagement (Puppet & Chef) Monitoring (Nagios & Icinga) IaaS Cloud (OpenStack & SUSE Cloud & RDO) Hochverfügbarkeit (Pacemaker) Shared Storage (GPFS, OCFS2, DRBD & CEPH) Dateiaustausch (ownCloud) Paketierung (Open Build Service) Administratoren oder Entwickler zur Unterstützung des Teams vor Ort B1 Systems GmbH MongoDB – Big Data mit Open Source 3 / 48
  4. 4. Partner B1 Systems GmbH MongoDB – Big Data mit Open Source 4 / 48
  5. 5. Einführung in MongoDB B1 Systems GmbH MongoDB – Big Data mit Open Source 5 / 48
  6. 6. Was ist MongoDB? Open Source NoSQL Datenbank schemafrei skalierbar dokumentenorientiert entwickelt durch MongoDB Inc. B1 Systems GmbH MongoDB – Big Data mit Open Source 6 / 48
  7. 7. Vergleich RDBMS und NoSQL Vergleich RDBMS und MongoDB-NoSQL RDBMS NoSQL Database Database Table Collection Index Index Row BSON Document Column BSON Field Join Embedding and Linking Primary Key _id Field B1 Systems GmbH MongoDB – Big Data mit Open Source 7 / 48
  8. 8. NoSQL „Not Only SQL“ nicht relational keine Tabellenschemata Vermeidung von JOINs horizontale Skalierung B1 Systems GmbH MongoDB – Big Data mit Open Source 8 / 48
  9. 9. Das BSON Format „Binary JSON“ bietet mehr Datentypen als JSON ermöglicht Speicherung von Binärdaten entwickelt für MongoDB erweitert zur offiziellen Spezifikation (bsonspec.org) B1 Systems GmbH MongoDB – Big Data mit Open Source 9 / 48
  10. 10. Das BSON Format Beispieldokument im BSON-Format: { "Benutzername": "linus.torvalds", "Name": { "Vorname": "linus", "Nachname": "torvalds", }, "ÜbergeordneterChef": {}, "Kollegen": [ "s.example0", "g.example1" ], "IstAbteilungsleiter": true, "Abteilungen": null, } B1 Systems GmbH MongoDB – Big Data mit Open Source 10 / 48
  11. 11. Systemkonfiguration B1 Systems GmbH MongoDB – Big Data mit Open Source 11 / 48
  12. 12. Hardwarevoraussetzungen Minimale Systemanforderungen: Architektur: 64bit Betriebssystem Multicore CPU Arbeitsspeicher und Speicherplatz: MongoS: OS-Empfehlung Configserver: OS-Empfehlung Datenbankserver: abhängig von Datenbankgröße B1 Systems GmbH MongoDB – Big Data mit Open Source 12 / 48
  13. 13. Basiskonfiguration Anpassung der Systemkonfiguration Ulimits Readahead Swap Filesystem Hugepages B1 Systems GmbH MongoDB – Big Data mit Open Source 13 / 48
  14. 14. Dateien und Ports Hauptkonfigurationsdatei: /etc/mongodb.conf Logdatei: /var/log/mongodb/mongodb.log Standardports (TCP): 27017: mongod & mongos 27018: monood mit –shardsvr 27019: mongod mit –configsvr 27017: mongod status page (= port + 1000) B1 Systems GmbH MongoDB – Big Data mit Open Source 14 / 48
  15. 15. Komponenten der MongoDB B1 Systems GmbH MongoDB – Big Data mit Open Source 15 / 48
  16. 16. Komponenten und Begrifflichkeiten 1/2 mongod mongos ConfigServer ReplicaSets Sharding B1 Systems GmbH MongoDB – Big Data mit Open Source 16 / 48
  17. 17. Komponenten und Begrifflichkeiten 2/2 Abbildung : MongoDB Standalone/ReplicaSet B1 Systems GmbH MongoDB – Big Data mit Open Source 17 / 48
  18. 18. Aufbau – MongoDB Standalone B1 Systems GmbH MongoDB – Big Data mit Open Source 18 / 48
  19. 19. Standalone-Instanz Testzwecke Entwicklung kleine Applikationen (keine Redundanz!) B1 Systems GmbH MongoDB – Big Data mit Open Source 19 / 48
  20. 20. Konfiguration Standalone Basiskonfiguration: # cat /etc/mongodb.conf fork = true port = 27017 bind_ip = 127.0.0.1 dbpath = /data/mongodb logpath = /var/log/mongodb/mongodb.log logappend = true nohttpinterface = true B1 Systems GmbH MongoDB – Big Data mit Open Source 20 / 48
  21. 21. Authentifizierung 1/3 Authentifizierung in Basiskonfiguration inaktiv Benutzerauthentifizierung pro Datenbank Rechtevergabe anhand eines Rollensystems B1 Systems GmbH MongoDB – Big Data mit Open Source 21 / 48
  22. 22. Authentifizierung 2/3 Anlegen Admin-User zur Aktivierung des Auth-Systems: $ mongo admin connecting to: admin > db.addUser("admin", "password"); { "user" : "admin", "readOnly" : false, "pwd" : "9e7085a6bd3bd9d413444d3adad882bd", "_id" : ObjectId("526c39bbaa18b118ec0fc039") } B1 Systems GmbH MongoDB – Big Data mit Open Source 22 / 48
  23. 23. Authentifizierung 3/3 Anlage eines Applikationsbenutzers: $ mongo admin -u admin -p connecting to: admin > use customers > db.addUser({user:"demo",pwd:"password",roles:["read"]}) { "user" : "demo", "pwd" : "cd9297683105acbc2b7d9a4a8e2c043b", "roles" : [ "read" ], "_id" : ObjectId("544df94cb6809cdd0bba4107") } B1 Systems GmbH MongoDB – Big Data mit Open Source 23 / 48
  24. 24. Liveaufbau Standalone B1 Systems GmbH MongoDB – Big Data mit Open Source 24 / 48
  25. 25. Aufbau – MongoDB ReplicaSet B1 Systems GmbH MongoDB – Big Data mit Open Source 25 / 48
  26. 26. MongoDB ReplicaSet 1/4 bietet Redundanz kann Kapazität bei Reads erhöhen erleichtert Backupstrategien und Restores besteht aus 3-12 mongod existentes Standalone-System kann migriert werden B1 Systems GmbH MongoDB – Big Data mit Open Source 26 / 48
  27. 27. MongoDB ReplicaSet 2/4 B1 Systems GmbH MongoDB – Big Data mit Open Source 27 / 48
  28. 28. MongoDB ReplicaSet 3/4 B1 Systems GmbH MongoDB – Big Data mit Open Source 28 / 48
  29. 29. MongoDB ReplicaSet 4/4 B1 Systems GmbH MongoDB – Big Data mit Open Source 29 / 48
  30. 30. Konfiguration ReplicaSet Basiskonfiguration: # cat /etc/mongodb.conf fork = true port = 27017 bind_ip = 127.0.0.1 dbpath = /data/mongodb logpath = /var/log/mongodb/mongodb.log logappend = true nohttpinterface = true auth = true keyFile = /etc/mongodb.key replSet = rs00 B1 Systems GmbH MongoDB – Big Data mit Open Source 30 / 48
  31. 31. Konfiguration ReplicaSet Für die interne Authentifizierung der einzelnen Clusterkomponenten wird ein Authkey erstellt: # openssl rand -base64 741 > /etc/mongodb.key # chmod 0600 /etc/auth.key # chown mongodb:mongodb /etc/mongodb.key B1 Systems GmbH MongoDB – Big Data mit Open Source 31 / 48
  32. 32. Initialisierung ReplicaSet Basiskonfiguration: $ mongo admin -u admin -p > newSet = { _id: ’rs00’, members: [ ... {_id: 0, host: ’mongodb-rs00-01:27117’}, ... {_id: 1, host: ’mongodb-rs00-02:27127’}, ... {_id: 2, host: ’mongodb-rs00-03:27137’}]} > rs.initiate(newSet) [...] > rs.status() [...] B1 Systems GmbH MongoDB – Big Data mit Open Source 32 / 48
  33. 33. Liveaufbau ReplicaSet B1 Systems GmbH MongoDB – Big Data mit Open Source 33 / 48
  34. 34. Aufbau – MongoDB ShardedCluster B1 Systems GmbH MongoDB – Big Data mit Open Source 34 / 48
  35. 35. MongoDB ShardedCluster 1/5 bietet vertikale Skalierbarkeit kann Kapazität von Writes erhöhen erweitert verfügbaren Speicherplatz B1 Systems GmbH MongoDB – Big Data mit Open Source 35 / 48
  36. 36. MongoDB ShardedCluster 2/5 Minimalsetup für einen redundanten MongoDB Cluster: 2 ReplicaSets mit jeweils 3 mongod-Instanzen 3 ConfigServer 2 MongoS Instanzen B1 Systems GmbH MongoDB – Big Data mit Open Source 36 / 48
  37. 37. MongoDB ShardedCluster 3/5 Abbildung : Sharded Cluster B1 Systems GmbH MongoDB – Big Data mit Open Source 37 / 48
  38. 38. MongoDB ShardedCluster 4/5 Abbildung : Sharded Cluster - Beispiel 2 B1 Systems GmbH MongoDB – Big Data mit Open Source 38 / 48
  39. 39. MongoDB ShardedCluster 5/5 Abbildung : Sharded Cluster - Beispiel 3 B1 Systems GmbH MongoDB – Big Data mit Open Source 39 / 48
  40. 40. Konfiguration ConfigServer Basiskonfiguration: # cat /etc/mongodb.conf fork = true port = 27019 bind_ip = 127.0.0.1 dbpath = /data/mongodb auth = true keyFile = /etc/mongodb.key logpath = /var/log/mongodb/mongodb.log logappend = true nohttpinterface = true configsvr = true B1 Systems GmbH MongoDB – Big Data mit Open Source 40 / 48
  41. 41. Konfiguration MongoS Basiskonfiguration: # cat /etc/mongodb.conf fork = true bind_ip = 127.0.0.1 port = 27017 keyFile = /etc/mongodb.key logpath = /var/log/mongodb/mongodb.log logappend = true nohttpinterface = true configdb = mongodb-cfg-01:27019,mongodb-cfg-02:27029,mongodb-cfg-03:27039 B1 Systems GmbH MongoDB – Big Data mit Open Source 41 / 48
  42. 42. Initialisierung Cluster 1/2 Anlegen Adminuser Cluster: $ mongo admin connecting to: admin mongos> db.addUser("admin", "password"); { "user" : "admin", "readOnly" : false, "pwd" : "9e7085a6bd3bd9d413444d3adad882bd", "_id" : ObjectId("526c39bbaa18b118ec0fc039") } B1 Systems GmbH MongoDB – Big Data mit Open Source 42 / 48
  43. 43. Initialisierung Cluster 2/2 Anlegen Adminuser Cluster: $ mongo admin -u admin -p connecting to: admin mongos> use config switched to db config mongos> sh.addShard("rs00/mongodb-rs00-01:27117") { "shardAdded" : "rs00", "ok" : 1 } mongos> sh.status() [...] B1 Systems GmbH MongoDB – Big Data mit Open Source 43 / 48
  44. 44. Aktivierung Sharding Anlegen Adminuser Cluster: mongos> sh.enableSharding("demodata") { "ok" : 1 } mongos> sh.shardCollection("demodata.products", {_id:1}) { "collectionsharded" : "demodata.products", "ok" : 1 } mongos> sh.status() [...] B1 Systems GmbH MongoDB – Big Data mit Open Source 44 / 48
  45. 45. Liveaufbau ReplicaSet B1 Systems GmbH MongoDB – Big Data mit Open Source 45 / 48
  46. 46. Optionale Komponenten B1 Systems GmbH MongoDB – Big Data mit Open Source 46 / 48
  47. 47. Optionale Komponenten Arbiter Hidden Member Delayed Member B1 Systems GmbH MongoDB – Big Data mit Open Source 47 / 48
  48. 48. Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

×