sql >> Database >  >> NoSQL >> MongoDB

Hadoop-kaart/verkleinen vs ingebouwde kaart/verkleinen

Mijn antwoord is gebaseerd op kennis en ervaring van Hadoop MR en kennis van Mongo DB MR. Laten we eens kijken wat de belangrijkste verschillen zijn en vervolgens proberen criteria voor selectie te definiëren:Verschillen zijn:

  1. Hadoop's MR kan in Java worden geschreven, terwijl die van MongoDB in JavaScript is.
  2. Hadoop's MR kan alle cores gebruiken, terwijl die van MongoDB single-threaded is.
  3. Hadoop MR wordt niet samen met de gegevens geplaatst, terwijl die van Mongo DB wel worden geplaatst.
  4. Hadoop MR heeft miljoenen engine/uren en kan veel hoekgevallen aan met enorme output, scheve gegevens, enz.
  5. Er zijn frameworks op een hoger niveau zoals Pig, Hive, Cascading die bovenop de Hadoop MR-engine zijn gebouwd.
  6. Hadoop MR is mainstream en er is veel gemeenschapsondersteuning beschikbaar.

Uit het bovenstaande kan ik de volgende selectiecriteria voorstellen:
Selecteer Mongo DB MR als u eenvoudig wilt groeperen op en filteren, verwacht geen hevig geschuifel tussen kaart en verkleinen. Met andere woorden - iets eenvoudigs.

Selecteer hadoop MR als u gecompliceerde, rekenintensieve MR-taken gaat uitvoeren (bijvoorbeeld sommige regressieberekeningen). Het hebben van veel of onvoorspelbare gegevens tussen kaart en verkleinen suggereert ook Hadoop MR.

Java is een sterkere taal met meer bibliotheken, vooral statistisch. Daar moet rekening mee worden gehouden.



  1. MongoDB findOneAndUpdate()

  2. Omgekeerde paginering via een opnieuw gesorteerde set

  3. Redis start niet als Windows-service op Windows7

  4. Mongoose - subdocumenten zoeken op criteria