quinta-feira, 29 de maio de 2014

mongodb-hadoop-connector


MongoDB e Hadoop são uma combinação poderosa e pode ser usado em conjunto para fornecer análises complexas e processamento de dados armazenados no MongoDB. O guia a seguir mostra como você pode começar a trabalhar com o MongoDB Conector para Hadoop. Uma vez que você se familiarizar com o conector, você pode usá-lo para puxar seus dados MongoDB nos Jobs do Hadoop Map-Reduce, processar os dados e retornar resultados para uma coleção MongoDB.


Para iniciar, precisamos ver alguns prerequisitos básicos :


Hadoop


Primeiramente, você já deve ter Hadoop instalado e funcionando. Isto pode variar de um cluster implementado contendo vários nós ou um único nó pseudo-distribuído executando localmente em uma instalação Hadoop . Contanto que você seja capaz de executar qualquer um dos exemplos em sua instalação Hadoop, você estará pronto. Atualmente as seguintes versões do Hadoop são suportadas:




  • 0.23

  • 1.0

  • 1.1

  • 2.2

  • 2.3

  • CDH4


MongoDB


A última versão do MongoDB deve ser instalado e funcionando. Além disso, os comandos do MongoDB devem estar no seu $PATH.

Além Hadoop, você também deve ter o git e JDK 1.6 instalado.

Construindo o MongoDB Conector para Hadoop


A fonte do MongoDB Hadoop Connector está disponível no GitHub. Primeiro, você deve clonar o repositório. Se você quer construir uma versão específica que você deve conferir o tag para essa versão. Por exemplo, para construir a versão 1.2.0, obter a marca r1.2.0:



git clone https://github.com/mongodb/mongo-hadoop.git
git checkout r1.2.0

O Hadoop conector utiliza o Gradle para construir. Por padrão, o conector vai construir com a última versão do Apache Hadoop (atualmente 2.3). Se você precisa construir para uma versão diferente, simplesmente passe Phadoop_version = <sua versão> ao construir. Por exemplo, para construir para as bibliotecas de distribuição CDH 4, você deve executar o seguinte comando:



./gradlew jar -Phadoop_version=cdh4

Para obter uma lista de todas as distribuições de suporte e qual configuração usar para construir, para cada um, verifique a listagem da documentação detalhada sobre as versões mongo-Hadoop aqui

Uma vez que o conector é construído, você precisa copiá-lo assim como a última versão estável do driver MongoDB Java para o seu  diretório $HADOOP_HOME/lib. Por exemplo, se você tiver Hadoop instalado em /usr/lib/Hadoop:
wget --no-check-certificate https://github.com/downloads/mongodb/mongo-java-driver/mongo-2.11.4.jar
cp mongo-2.11.4.jar /usr/lib/hadoop/lib/
cp core/build/libs/mongo-hadoop-core-1.2.0-hadoop_2.3.jar /usr/lib/hadoop/lib/

Exemplos


O MongoDB Hadoop Connector fornece alguns exemplos de como usar o conector em sua própria configuração. Neste guia, vamos nos concentrar no exemplo Treasury Yield. Este exemplo pode ser executado via Gradle com o seguinte comando:



./gradlew historicalYield

Você deve ter visto um monte de dados passando durante a rolagem da tela. Para entender o que está acontecendo, vamos dividir os passos. A primeira coisa que esta tarefa faz é importar  examples/treasury_yield/src/main/resources/yield_historical_in.json  para mongo. Você pode ver os dados como mostrado abaixo:



$ mongo mongo_hadoop
MongoDB shell version: 2.4.9
connecting to: mongo_hadoop
> show collections
system.indexes
yield_historical.in
yield_historical.out
> db.yield_historical.in.find()
{ "_id" : ISODate("1990-01-02T00:00:00Z"), "dayOfWeek" : "TUESDAY", "bc3Year" : 7.9, "bc5Year" : 7.87, "bc10Year" : 7.94, "bc20Year" : null, "bc1Month" : null, "bc2Year" : 7.87, "bc3Month" : 7.83, "bc30Year" : 8, "bc1Year" : 7.81, "bc7Year" : 7.98, "bc6Month" : 7.89 }
{ "_id" : ISODate("1990-01-03T00:00:00Z"), "dayOfWeek" : "WEDNESDAY", "bc3Year" : 7.96, "bc5Year" : 7.92, "bc10Year" : 7.99, "bc20Year" : null, "bc1Month" : null, "bc2Year" : 7.94, "bc3Month" : 7.89, "bc30Year" : 8.04, "bc1Year" : 7.85, "bc7Year" : 8.04, "bc6Month" : 7.94 }
...
has more
>

Quando você executar os exemplos, o Gradle irá baixar o pacote de distribuição do Hadoop apropriado, extraí-lo e copiar sobre as dependências apropriadas para você. Nas execuções subseqüentes os arquivos não serão baixados novamente e por isso é seguro para alternar entre as versões do Hadoop. O Gradle irá gerenciar tudo isso para você, assim você não precisa se preocupar com qualquer um desses detalhes. É recomendável executar ./Gradlew limpo ao mudar as versões do Hadoop para garantir que tudo será construído com as versões corretas das bibliotecas.


Leia a documentação completa sobre o MongoDB Hadoop Connector aqui

0 comentários:

Postar um comentário

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página