从配置单元连接到MongoDB:NoClassDefFoundError com / mongodb / BasicDBObject

时间:2018-06-20 23:29:49

标签: java mongodb hadoop hive

我正在尝试使用以下JAR从hive连接到MongoDB。 https://github.com/mongodb/mongo-hadoop/wiki/Hive-Usage

根据文章,我添加了所有三个罐子。

list jars;
+----------------------------------------------------------------------------------+--+
|                                     resource                                     |
+----------------------------------------------------------------------------------+--+
| /tmp/59189111-9369-403b-aa25-c6a0de845b9d_resources/mongo-java-driver-3.7.1.jar  |
| /tmp/59189111-9369-403b-aa25-c6a0de845b9d_resources/mongo-hadoop-hive-2.0.2.jar  |
| /tmp/59189111-9369-403b-aa25-c6a0de845b9d_resources/mongo-hadoop-core-2.0.2.jar  |
+----------------------------------------------------------------------------------+--+

以下是我的 hive查询

 CREATE TABLE custom1(
    first_name STRING, 
    last_name STRING
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES('mongo.columns.mapping'='{"first_name":"first_name","last_name":"last_na,e"}')
TBLPROPERTIES('mongo.uri'='mongodb://10.117.136.21:27017/test.persons')

我正在跟踪错误

Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException(message:java.lang.NoClassDefFoundError com/mongodb/BasicDBObject) (state=08S01,code=1)

我发现

中的类com/mongodb/BasicDBObject mongo-java-driver-3.7.1.jar 中可用
jar tf mongo-java-driver-3.7.1.jar | grep -i BasicDBObject
com/mongodb/BasicDBObject.class
com/mongodb/BasicDBObjectBuilder.class
com/mongodb/BasicDBObjectFactory.class

那我为什么会收到此错误?

0 个答案:

没有答案