Utiliser le connecteur MongoDB avec Pig

Le connecteur MongoDB for Hadoop et Pig est disponible sous GitHub.

MongoDB utilise l’outil de makefile SBT de la communauté SCALA. Pour compiler et packager SBT :

Créer un fichier .bat de lancement de SBT

set SCRIPT_DIR=%~dp0
java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*


Dans le répertoire mongo-hadoop après un git clone https://github.com/mongodb/mongo-hadoop.git , lançer sbt et utiliser les commandes

compile : pour compiler
package : pour créer les fichiers jars
publish : pour publier dans votre repository local ivy2 (~/.ivy2)

Vous devez alors mettre dans votre distribution PIg, 3 jars :
– mongo-hadoop-core-1.1.0-SNAPSHOT.jar
– mongo-hadoop-pig-1.1.0-SNAPSHOT.jar
– mongo-java-driver-2.7.1.jar

et dans votre fichier PIG :

/* MongoDB libraries and configuration */
REGISTER lib/mongo-java-driver-2.7.1.jar /* MongoDB Java Driver */
REGISTER lib/mongo-hadoop-core-1.1.0-SNAPSHOT.jar
REGISTER lib/mongo-hadoop-pig-1.1.0-SNAPSHOT.jar

/* Shortcut */
DEFINE AVROSTORAGE org.apache.pig.piggybank.storage.avro.AvroStorage();
DEFINE MONGOSTORAGE com.mongodb.hadoop.pig.MongoStorage();

avros = load '/tmp/data/referential.avro' using AVROSTORAGE();
store avros into 'mongodb://mobgodb/referential.db' using MONGOSTORAGE();