执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1com/mongodb/util/json

pvabu6sv  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(327)

我正在尝试将mongodb与hadoop连接起来。我的ubuntu14.04中安装了hadoop-1.2.1。我安装了mongodb-3.0.4,还下载并添加了 mongo-hadoop-hive-1.3.0.jar , mongo-java-driver-2.13.2.jar Hive会话中的jar。我已经下载了 mongo-connector.sh (可在此网站找到)并将其包含在hadoop\u home/lib下。
我设置了如下输入和输出源:

hive> set MONGO_INPUT=mongodb://[user:password@]<MongoDB Instance IP>:27017/DBname.collectionName;
hive> set MONGO_OUTPUT=mongodb://[user:password@]<MongoDB Instance IP>:27017/DBname.collectionName;
hive> add JAR brickhouse-0.7.0.jar;
hive> create temporary function collect as 'brickhouse.udf.collect.CollectUDAF';

我在mongodb的收藏是:

> db.shows.find()
{ "_id" : ObjectId("559eb22fa7999b1a5f50e4e6"), "title" : "Arrested Development", "airdate" : "November 2, 2003", "network" : "FOX" }
{ "_id" : ObjectId("559eb238a7999b1a5f50e4e7"), "title" : "Stella", "airdate" : "June 28, 2005", "network" : "Comedy Central" }
{ "_id" : ObjectId("559eb23ca7999b1a5f50e4e8"), "title" : "Modern Family", "airdate" : "September 23, 2009", "network" : "ABC" }
>

现在我正在尝试创建一个配置单元表

CREATE EXTERNAL TABLE mongoTest(title STRING,network STRING)
    > STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
    > WITH SERDEPROPERTIES('mongo.columns.mapping'='{"title":"name",”airdate”:”date”,”network”:”name”}')
    > TBLPROPERTIES('mongo.uri'='${hiveconf:MONGO_INPUT}');

当我运行这个命令时,它说

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. com/mongodb/util/JSON

然后我又加了一句 hive-json-serde.jar 以及 hive-serdes-1.0-SNAPSHOT.jar jars并尝试再次创建表。但错误仍然是一样的。如何纠正此错误?

i2loujxw

i2loujxw1#

解析器看到了一些巧妙的引语—

”airdate”:”date”,”network”:”name”

他们应该是

"airdate":"date","network":"name"
72qzrwbm

72qzrwbm2#

我真的加了这些 mongo-hadoop-core-1.3.0.jar , mongo-hadoop-hive-1.3.0.jar 以及 mongo-java-driver-2.13.2.jar hadoop\u home/lib文件夹中的jar。然后我就可以从mongodb到hive中获取数据而没有任何错误。

相关问题