2017-03-27 14 views
0

MongoInsertStorage with PIGを使用してHDFSからMongoDBにファイルをインポートしようとしています。ファイルは大きく、約5GBです。私はMongoDBにデータを挿入するために豚が失敗する

pig -x local example.pig 

とローカルモードでそれを実行すると、スクリプトは、私はMapReduceのモードでそれを実行する場合は、マッパーのほとんどは、次のエラーで失敗する細かい動作します:

Error: com.mongodb.ConnectionString.getReadConcern()Lcom/mongodb/ReadConcern; 
Container killed by the ApplicationMaster. 
Container killed on request. 
Exit code is 143 Container exited with a non-zero exit code 143 

誰かが私を助けることができますこの問題を解決する??私もYARNコンテナに割り当てられたメモリを増やしましたが、それは役に立たなかった。

一部のマッパーも300秒後にタイムアウトします。

REGISTER mongo-java-driver-3.2.2.jar 
REGISTER mongo-hadoop-core-1.4.0.jar 
REGISTER mongo-hadoop-pig-1.4.0.jar 
REGISTER mongodb-driver-3.2.2.jar 

DEFINE MongoInsertStorage com.mongodb.hadoop.pig.MongoInsertStorage(); 

SET mapreduce.reduce.speculative true 
BIG_DATA = LOAD 'hdfs://example.com:8020/user/someuser/sample.csv' using PigStorage(',') As (a:chararray,b:chararray,c:chararray); 

STORE BIG_DATA INTO 'mongodb://insert.some.ip.here:27017/test.samplecollection' USING MongoInsertStorage('', '') 
+0

チェックmongoログ、あなたはDBへの接続の限界に達するように見えます。 mongoシェルでは 'db.serverStatus()。connections'はオープン/利用可能な接続の数を表示します。 –

+0

上記のクエリを使用すると、使用可能な接続が51186であることが示されます。マッパーがこの数の接続を超えるとは思われません。 – user3270763

答えて

0

は解決策を見つけ、次のように

豚スクリプトです。 1.4.0から2.0.2までhadoopcoreとhadooppig及び3.2.2から3.4.2までMongoのJavaのドライバの -

エラー

Error: com.mongodb.ConnectionString.getReadConcern()Lcom/mongodb/ReadConcern; 
Container killed by the ApplicationMaster. 
Container killed on request. 
Exit code is 143 Container exited with a non-zero exit code 143 

のために私はJARバージョンを変更。これにより、マッパーのReadConcernエラーが解消されました!タイムアウトの は、私はjarファイルを登録した後にこれを追加しました:

SET mapreduce.task.timeout 1800000 

私は、これは同様の問題を持っている人を助け

希望の仕事

をdidntのSETのmapred.task.timeoutを使用していました!

関連する問題