【发布时间】:2018-05-31 18:01:04
【问题描述】:
- 我的输入:mongo db(版本 3.4.4)中的一个集合(“demo1”)
- 我的输出:我的数据导入到 hive("demo2") 中的数据库中(版本 1.2.1.2.3.4.7-4)
- 目的:在 mongo 和 hive 之间创建一个连接器
错误:
执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 com/mongodb/util/JSON
我按照这些步骤尝试了 2 个解决方案(但错误仍然存在):
1)我在连接到 docker 的 mongo(通过 robomongo)中创建了一个本地集合
2) 我上传那些版本的 jar 并将其添加到 hive 中
ADD JAR /home/.../mongo-hadoop-hive-2.0.2.jar;
ADD JAR /home/.../mongo-hadoop-core-2.0.2.jar;
ADD JAR /home/.../mongo-java-driver-3.4.2.jar;
不幸的是,错误并没有改变;所以我上传了那些版本,我在为我的导出选择正确的版本时犹豫不决,所以我试试这个:
ADD JAR /home/.../mongo-hadoop-hive-1.3.0.jar;
ADD JAR /home/.../mongo-hadoop-core-1.3.0.jar;
ADD JAR /home/.../mongo-java-driver-2.13.2.jar;
3) 我创建了一个外部表
CREATE EXTERNAL TABLE demo2
(
id INT,
name STRING,
password STRING,
email STRING
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH
SERDEPROPERTIES('mongo.columns.mapping'='{"id":"_id","name":"name","password":"password","email":"email"}')
TBLPROPERTIES('mongo.uri'='mongodb://localhost:27017/local.demo1');
- hive 中返回错误:
执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 com/mongodb/util/JSON
我该如何解决这个问题?
【问题讨论】:
-
嗨@Liz18 你能找到解决方案吗?确实遇到了这个问题。任何帮助将不胜感激。