首页 > 解决方案 > 使用“com.mongodb.util.JSONParseException”传输 BSON 文件时出错

问题描述

我正在尝试将 BSON 文件传输到 Hive,BSON 文件是从 MongoDB 转储的,

mongodump 命令之类的

mongodump -h $host -u $user -p $password -d $db -c $collection -o $output
我用 jar 之类的
add jar mongo-hadoop-core-2.0.2.jar;add jar mongo-hadoop-hive-2.0.0.jar;add mongo-java-driver-3.2.2.jar;

当我执行 hiveSql 时


    create external table sfim_logs_dump (
        id string
        ,ts bigint
        ,reqts string
        ) 
        row format serde 'com.mongodb.hadoop.hive.bsonserde' 
        with serdeproperties(
       'mongo.columns.mapping' = '{"id":"_id","ts":"ts","reqts":"reqts"}')
        stored as inputformat 'com.mongodb.hadoop.mapred.bsonfileinputformat' 
        outputformat 'com.mongodb.hadoop.hive.output.hivebsonfileoutputformat' 
        location '$hdfspath'

像这样的错误


    com.mongodb.util.JSONParseException:
                at com.mongodb.util.JSONParser.read(JSON.java:302)
                at com.mongodb.util.JSONParser.parseObject(JSON.java:263)
                at com.mongodb.util.JSONParser.parse(JSON.java:228)
                at com.mongodb.util.JSONParser.parse(JSON.java:156)
                at com.mongodb.util.JSON.parse(JSON.java:98)
                at com.mongodb.util.JSON.parse(JSON.java:79)
                at com.mongodb.hadoop.hive.BSONSerDe.initialize(BSONSerDe.java:110)
                at org.apache.hadoop.hive.serde2.SerDeUtils.initializeSerDe(SerDeUtils.java:526)

请帮我解决问题?我该怎么做才能将 BSON 文件有效地传输到 Hive 中?

标签: javamongodbhadoophivebson

解决方案


推荐阅读