MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

como armazenar dados processados ​​de hdfs usando mapReduce no mongoDB como saída


Basicamente o que você precisa é alterar a "classe de formato de saída", e você tem várias maneiras de lá:
  1. Use o Conector MongoDB para Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
  2. Implemente seu próprio OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Em vez de usar FileOutputFormat).
  3. Execute consultas mongodb dentro do redutor em vez de escrever no contexto MapREduce (não é legal, você pode terminar com arquivos de saída vazios no HDFS dependendo do OutputFormat especificado no driver)

Na minha opinião, a opção 1 é a melhor opção, mas não usei o conector MongoDB para dizer se é suficientemente estável e funcional. A opção 2 exige que você realmente entenda como está funcionando o submundo do hadoop para evitar o término com muitas conexões abertas e problemas com transações e novas tentativas de tarefas do hadoop.