Successfully reported this slideshow.

MongoDB - Big Data mit Open Source

769 Aufrufe

Veröffentlicht am

MongoDB - Big Data mit Open Source

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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

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

×