简体   繁体   English

执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。 COM /的MongoDB / UTIL / JSON

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

I am trying to connect MongoDb with Hadoop. 我正在尝试将MongoDb与Hadoop连接起来。 I have Hadoop-1.2.1 installed in my Ubuntu 14.04. 我在我的Ubuntu 14.04中安装了Hadoop-1.2.1。 I installed MongoDB-3.0.4 and also downloaded and added mongo-hadoop-hive-1.3.0.jar , mongo-java-driver-2.13.2.jar jars in hive session. 我安装了MongoDB-3.0.4,并在hive会话中下载并添加了mongo-hadoop-hive-1.3.0.jarmongo-java-driver-2.13.2.jar jars。 I have downloaded mongo-connector.sh (found in this site )and included it under Hadoop_Home/lib. 我已下载mongo-connector.sh (在此站点中找到)并将其包含在Hadoop_Home / lib下。

I have set input and output sources like this : 我设置了这样的输入和输出源:

 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'; 

My collection in MongoDb is this : 我在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" } > 

Now I am trying to create a Hive table 现在我正在尝试创建一个Hive表

 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}'); 

When I run this command, it says 当我运行这个命令时,它说

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

Then I added hive-json-serde.jar and hive-serdes-1.0-SNAPSHOT.jar jars and tried to create the table again. 然后我添加了hive-json-serde.jarhive-serdes-1.0-SNAPSHOT.jar hive-json-serde.jar hive-serdes-1.0-SNAPSHOT.jar罐子并尝试再次创建表格。 But the error remains the same. 但错误仍然相同。 How can I rectify this error? 我该如何纠正这个错误?

I actually added these mongo-hadoop-core-1.3.0.jar , mongo-hadoop-hive-1.3.0.jar and mongo-java-driver-2.13.2.jar jars in Hadoop_Home/lib folder. 我实际上在Hadoop_Home / lib文件夹中添加了这些mongo-hadoop-core-1.3.0.jarmongo-hadoop-hive-1.3.0.jarmongo-java-driver-2.13.2.jar jars。 Then I was able to get data from MongoDb to Hive without any errors. 然后我能够从MongoDb到Hive获取数据而没有任何错误。

There are smart-quotes which the parser is seeing - ” 解析器看到了智能引号 - “

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

They should be 他们应该是

 "airdate":"date","network":"name"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM