gpt4 book ai didi

mongodb - 映射器无法让Pig将数据插入MongoDB

转载 作者:行者123 更新时间:2023-12-02 21:01:49 24 4
gpt4 key购买 nike

我正在尝试使用带有PIG的MongoInsertStorage将文件从HDFS导入到MongoDB。文件很大,大约5GB。当我在本地模式下运行脚本时,脚本运行良好

 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秒后超时。

pig 脚本如下
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('', '')

最佳答案

找到了解决方案。

对于错误

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版本-hadoopcore和hadooppig从1.4.0更改为2.0.2,并将Mongo Java驱动程序从3.2.2更改为3.4.2。这消除了映射器上的ReadConcern错误!
对于超时,我在注册 jar 后添加了它:
SET mapreduce.task.timeout 1800000

我一直在使用SET mapred.task.timeout,但没有用

希望这对遇到类似问题的人有所帮助!

关于mongodb - 映射器无法让Pig将数据插入MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43057640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com