Hi,
I am trying to create a hive table STORED BY "com.mongodb.hadoop.hive.MongoStorageHandler" using reference
http://www.10gen.com/presentations/webinar-whats-new-mongodb-hadoop-integration (slide# 75).
My environment details are-
MongoDB 2.4.5
Cloudera 4.3
I have downloaded mongodb-hadoop CDH connectors from
https://github.com/mongodb/mongo-hadoop and placed all 3 jars in hadoop, hadoop-hdfs, hadoop-mapreduce, hadoop-0.20-mapreduce and hive libs folder.
Below is my create table statement in hive-
CREATE TABLE Final.MetricDistFact (
Time_Id TIMESTAMP,
TimeLevel STRING,
Nation_DESC STRING,
Region_ID INT,
Region_DESC STRING,
District_ID INT,
District_DESC STRING
)
STORED BY "com.mongodb.hadoop.hive.MongoStorageHandler"
WITH SERDEPROPERTIES( "mongo.columns.mapping" = "Time_Id, TimeLevel, Nation_DESC, Region_ID, Region_DESC, District_ID, District_DESC" )
TBLPROPERTIES ("mongo.uri" = "mongodb://localhost:27017/Final.MetricDistFact");
And the error log from hive is -
2013-08-27 12:09:04,142 INFO ql.Driver (PerfLogger.java:PerfLogEnd(127)) - </PERFLOG method=TimeToSubmit start=1377585543550 end=1377585544142 duration=592>
2013-08-27 12:09:04,209 ERROR exec.Task (SessionState.java:printError(421)) - Failed with exception org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.com.mongodb.hadoop.hive.MongoStorageHandler
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.com.mongodb.hadoop.hive.MongoStorageHandler
at org.apache.hadoop.hive.ql.metadata.Table.getStorageHandler(Table.java:284)
at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3575)
at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:254)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:138)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1374)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1160)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:973)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:893)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:412)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:613)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.com.mongodb.hadoop.hive.MongoStorageHandler
at org.apache.hadoop.hive.ql.metadata.HiveUtils.getStorageHandler(HiveUtils.java:294)
at org.apache.hadoop.hive.ql.metadata.Table.getStorageHandler(Table.java:279)
... 18 more
Caused by: java.lang.ClassNotFoundException: com.mongodb.hadoop.hive.MongoStorageHandler
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.hive.ql.metadata.HiveUtils.getStorageHandler(HiveUtils.java:287)
... 19 more
2013-08-27 12:09:04,218 ERROR ql.Driver (SessionState.java:printError(421)) - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
I also tried searching for MongoStorageHandler in all jars and mongo-hadoop git also but I am not able to find it.
Please help me to reslove this.
Regards,
Rishav