apache pig - Pig: STORE with MongoInsertStorage don't work -
i'm executing simple code in pig script:
register /home/myuser/mongodb/mongo-2.10.1.jar register /opt/cloudera/parcels/cdh-4.5.0-1.cdh4.5.0.p0.30/lib/mongo-hadoop-cdh4-1.2.0/mongo-hadoop-core_cdh4.3.0-1.2.0.jar register /opt/cloudera/parcels/cdh-4.5.0-1.cdh4.5.0.p0.30/lib/mongo-hadoop-cdh4-1.2.0/mongo-hadoop-pig_cdh4.3.0-1.2.0.jar set mapred.map.tasks.speculative.execution false; set mapred.reduce.tasks.speculative.execution false; col = load 'mongodb://localhost:27017/mydb.mycollection' using com.mongodb.hadoop.pig.mongoloader ('id:chararray, companyid:chararray, ts:chararray', 'id'); store col 'mongodb://localhost:27017/mydb.mycollection2' using com.mongodb.hadoop.pig.mongoinsertstorage ('', '');
it returns following error:
location config: configuration: uri: file:/tmp/temp449583595/tmp-109467318 2014-04-04 14:30:40,913 [main] error org.apache.pig.tools.grunt.grunt - error 2017: internal error creating job configuration. details @ logfile: /home/myuser/pig/pig_1396614639609.log
the end of file pig_1396614639609.log:
... @ org.apache.hadoop.util.runjar.main(runjar.java:208) caused by: java.lang.illegalargumentexception: invalid uri format. uris must begin mongodb:// protocol string. @ com.mongodb.hadoop.pig.mongoinsertstorage.setstorelocation(mongoinsertstorage.java:159) @ org.apache.pig.backend.hadoop.executionengine.mapreducelayer.jobcontrolcompiler.getjob(jobcontrolcompiler.java:576)
... 17 more
i don't know error mongodb protocol string "mongodb://" well-written.
i have similar issue when running load , store using mongo-hadoop on same pig script.
it throws
java.net.unknownhostexception: localhost:27017 not valid inet address @ org.apache.hadoop.net.netutils.verifyhostnames(netutils.java:587) @ org.apache.hadoop.mapred.jobinprogress.inittasks(jobinprogress.java:734) @ org.apache.hadoop.mapred.jobtracker.initjob(jobtracker.java:3890) @ org.apache.hadoop.mapred.eagertaskinitializationlistener$initjob.run(eagertaskinitializationlistener.java:79) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:744)
i didn't investigate further, either bug or parameter related locking. don't know.
if run same code, loading , storing in different scripts runs without problem.
Comments
Post a Comment