在mongodb中有一个名为“数据”的集合。现在,我使用MongoDB Connector for Hadoop(hive)连接集合。其中包含用户名和密码。
我的创建语句是
CREATE EXTERNAL TABLE withpa2
(
name STRING,
age INT
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES('mongo.columns.mapping'='{"id":"_id"}')
TBLPROPERTIES('mongo.uri'='mongodb://username:password@localhost:27017/test.data');
我能够创建表,但是当我尝试访问数据时
使用:
select * from withpa2;
找到各自的错误:
Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.apache.hadoop.hive.ql.io.HiveInputFormat.LOG from class com.mongodb.hadoop.hive.input.HiveMongoInputFormat
at com.mongodb.hadoop.hive.input.HiveMongoInputFormat.getSplits(HiveMongoInputFormat.java:81)
at com.mongodb.hadoop.hive.input.HiveMongoInputFormat.getSplits(HiveMongoInputFormat.java:44)
at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextSplits(FetchOperator.java:371)
at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:303)
但是我可以访问其他没有用户名和密码的mongo数据库