我正在尝试使用以下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
那我为什么会收到此错误?