将数据从mongo导出到hive

时间:2017-06-12 08:28:55

标签: mongodb hadoop hive

  • 我的输入: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

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

所有的群集节点上复制正确的jar文件(mongo-hadoop-core-2.0.2.jarmongo-hadoop-hive-2.0.2.jarmongo-java-driver-3.2.2.jar)对我来说非常有用。


其他需要注意的事项:


其他有用的链接