Hi, It seems like you don't have the JDBC driver to the derby DB (org. apache.derby.jdbc.ClientDriver) in your classpath or in the hive lib directory. These steps are specified in http://wiki.apache.org/hadoop/HiveDerbyServerMode -> Copy Derby Jar Files.
HTH! -Vinithra 2010/5/26 Zhou Shuaifeng <[email protected]> > Hi Ning, > > Thank you very much. There is still problems, details are below, please > help > to check where the problem is, thanks a lot. > > The runing service info: > > linux-01:/opt/hadoop/db-derby-10.5.3.0-bin/data # jps > 9133 HMaster > 9072 HQuorumPeer > 19910 NetworkServerControl > 8699 SecondaryNameNode > 8544 NameNode > 8778 JobTracker > 20016 Jps > 19929 RunJar > > The command and error info are below: > > linux-01:/opt/hadoop/db-derby-10.5.3.0-bin/data # hive > Hive history file=/tmp/root/hive_job_log_root_201005271108_742407423.txt > hive> show tables; > FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Error > creating transactional connection factory > NestedThrowables: > java.lang.reflect.InvocationTargetException > FAILED: Execution Error, return code 1 from > org.apache.hadoop.hive.ql.exec.DDLTask > hive> > > The hive-site.xml settings are below: > > <?xml version="1.0"?> > <configuration> > <property> > <name>hive.metastore.local</name> > <value>true</value> > <description>controls whether to connect to remove metastore server or > open a new metastore server in Hive Client JVM</description> > </property> > > <property> > <name>javax.jdo.option.ConnectionURL</name> > <value>jdbc:derby://2.1.37.110:1527/metastore_db;create=true</value> > <description>JDBC connect string for a JDBC metastore</description> > </property> > > <property> > <name>javax.jdo.option.ConnectionDriverName</name> > <value>org.apache.derby.jdbc.ClientDriver</value> > <description>Driver class name for a JDBC metastore</description> > </property> > </configuration> > > The logs are below: > > 2010-05-27 10:54:55,890 ERROR DataNucleus.Plugin > (Log4JLogger.java:error(115)) - Bundle "org.eclipse.jdt.core" requires > "org. > eclipse.core.resources" but it cannot be resolved. > 2010-05-27 10:54:55,890 ERROR DataNucleus.Plugin > (Log4JLogger.java:error(115)) - Bundle "org.eclipse.jdt.core" requires > "org. > eclipse.core.resources" but it cannot be resolved. > 2010-05-27 10:54:55,894 ERROR DataNucleus.Plugin > (Log4JLogger.java:error(115)) - Bundle "org.eclipse.jdt.core" requires > "org. > eclipse.core.runtime" but it cannot be resolved. > 2010-05-27 10:54:55,894 ERROR DataNucleus.Plugin > (Log4JLogger.java:error(115)) - Bundle "org.eclipse.jdt.core" requires > "org. > eclipse.core.runtime" but it cannot be resolved. > 2010-05-27 10:54:55,895 ERROR DataNucleus.Plugin > (Log4JLogger.java:error(115)) - Bundle "org.eclipse.jdt.core" requires > "org. > eclipse.text" but it cannot be resolved. > 2010-05-27 10:54:55,895 ERROR DataNucleus.Plugin > (Log4JLogger.java:error(115)) - Bundle "org.eclipse.jdt.core" requires > "org. > eclipse.text" but it cannot be resolved. > 2010-05-27 10:54:56,158 ERROR exec.DDLTask > (SessionState.java:printError(248)) - FAILED: Error in metadata: > javax.jdo.JDOFatalInternalException: Error creating transactional > connection > factory > NestedThrowables: > java.lang.reflect.InvocationTargetException > org.apache.hadoop.hive.ql.metadata.HiveException: > javax.jdo.JDOFatalInternalException: Error creating transactional > connection > factory > NestedThrowables: > java.lang.reflect.InvocationTargetException > at > org.apache.hadoop.hive.ql.metadata.Hive.getTablesForDb(Hive.java:441) > at > org.apache.hadoop.hive.ql.metadata.Hive.getTablesByPattern(Hive.java:423) > at > org.apache.hadoop.hive.ql.metadata.Hive.getAllTables(Hive.java:410) > at > org.apache.hadoop.hive.ql.exec.DDLTask.showTables(DDLTask.java:404) > at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:159) > at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:99) > at > org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:64) > at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:582) > at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:462) > at org.apache.hadoop.hive.ql.Driver.runCommand(Driver.java:324) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:312) > at > org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:123) > at > org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:181) > at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:287) > 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:156) > Caused by: javax.jdo.JDOFatalInternalException: Error creating > transactional > connection factory > NestedThrowables: > java.lang.reflect.InvocationTargetException > at > > org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(Nucl > eusJDOHelper.java:395) > at > > org.datanucleus.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPers > istenceManagerFactory.java:547) > at > > org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactor > y(JDOPersistenceManagerFactory.java:175) > 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 javax.jdo.JDOHelper$16.run(JDOHelper.java:1956) > at java.security.AccessController.doPrivileged(Native Method) > at javax.jdo.JDOHelper.invoke(JDOHelper.java:1951) > at > > javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHe > lper.java:1159) > at > javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:803) > at > javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:698) > at > org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:161) > at > > org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectSto > re.java:178) > at > > org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:122 > ) > at org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore. > java:101) > at > org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62) > at > > org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) > at > > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStor > e.java:134) > at > > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(Hi > veMetaStore.java:150) > at > > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore > .java:122) > at > > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaSto > re.java:104) > at > > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreCli > ent.java:75) > at > > org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:828) > at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:838) > at > org.apache.hadoop.hive.ql.metadata.Hive.getTablesForDb(Hive.java:439) > ... 18 more > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces > sorImpl.java:39) > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc > torAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > > org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(No > nManagedPluginRegistry.java:576) > at > > org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager > .java:324) > at > > org.datanucleus.store.AbstractStoreManager.<init>(AbstractStoreManager.java: > 190) > at > > org.datanucleus.store.mapped.MappedStoreManager.<init>(MappedStoreManager.ja > va:139) > at > org.datanucleus.store.rdbms.RDBMSManager.<init>(RDBMSManager.java:265) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces > sorImpl.java:39) > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc > torAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > > org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(No > nManagedPluginRegistry.java:576) > at > > org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager > .java:300) > at > > org.datanucleus.store.FederationManager.initialiseStoreManager(FederationMan > ager.java:106) > at org.datanucleus.store.FederationManager.<init>(FederationManager. > java:68) > at > > org.datanucleus.ObjectManagerFactoryImpl.initialiseStoreManager(ObjectManage > rFactoryImpl.java:152) > at > > org.datanucleus.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPers > istenceManagerFactory.java:529) > ... 43 more > Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke > the "default" plugin to create a ConnectionPool gave an error : Invalid > datastore driver class "org.apache.derby.jdbc.ClientDriver" : maybe you > havent specified the JDBC driver JAR in your CLASSPATH, or the name of the > class is incorrect. > at > > org.datanucleus.store.rdbms.ConnectionFactoryImpl.initDataSourceTx(Connectio > nFactoryImpl.java:169) > at > > org.datanucleus.store.rdbms.ConnectionFactoryImpl.<init>(ConnectionFactoryIm > pl.java:91) > ... 62 more > Caused by: org.datanucleus.exceptions.NucleusUserException: Invalid > datastore driver class "org.apache.derby.jdbc.ClientDriver" : maybe you > havent specified the JDBC driver JAR in your CLASSPATH, or the name of the > class is incorrect. > at > > org.datanucleus.store.rdbms.datasource.DriverManagerDataSource.<init>(Driver > ManagerDataSource.java:99) > at > > org.datanucleus.store.rdbms.datasource.DefaultDataSourceFactory.makePooledDa > taSource(DefaultDataSourceFactory.java:39) > at > > org.datanucleus.store.rdbms.ConnectionFactoryImpl.initDataSourceTx(Connectio > nFactoryImpl.java:148) > ... 63 more > Caused by: org.datanucleus.exceptions.ClassNotResolvedException: Class > "org. > apache.derby.jdbc.ClientDriver" was not found in the CLASSPATH. Please > check > your specification and your CLASSPATH. > at > > org.datanucleus.JDOClassLoaderResolver.classForName(JDOClassLoaderResolver.j > ava:250) > at > > org.datanucleus.JDOClassLoaderResolver.classForName(JDOClassLoaderResolver.j > ava:415) > at > > org.datanucleus.store.rdbms.datasource.DriverManagerDataSource.<init>(Driver > ManagerDataSource.java:87) > ... 65 more > > Shuaifeng(Frank) Zhou > Huawei Technologies Co., Ltd. > Tel: +86-29-81873251 > Fax: +86-29-81873238 > Mobile: +86-13572288349 > E-mail: [email protected] > www.huawei.com > > **************************************************************************** > *********** > This e-mail and its attachments contain confidential information from > HUAWEI, which is intended only for the person or entity whose address is > listed above. Any use of the information contained herein in any way > (including, but not limited to, total or partial disclosure, reproduction, > or dissemination) by persons other than the intended recipient(s) is > prohibited. If you receive this e-mail in error, please notify the sender > by > phone or email immediately and delete it! > ********************************************** > > -----邮件原件----- > 发件人: Ning Zhang [mailto:[email protected]] > 发送时间: 2010年5月26日 21:50 > 收件人: [email protected] > 主题: Re: Hive Develop problem for help > > JDO is used for storing Java objects to the metastore. It may be a > configuration error. can you double check your metastore configuration in > hive-site.xml? more detailed exception could be found in > /tmp/<userid>/hive. > log. > > On May 26, 2010, at 2:08 AM, Zhou Shuaifeng wrote: > > > > > Hi All, > > > > When I use Hadoop and Hive in suse linux, I got a plblem: > > > > hive> show tables; > > FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Error > > creating transactional connection factory > > NestedThrowables: > > java.lang.reflect.InvocationTargetException > > FAILED: Execution Error, return code 1 from > > org.apache.hadoop.hive.ql.exec.DDLTask > > > > My hadoop version is 0.20.2 and hive version is 0.5.0. > > > > Have anybody ever met the same problem with me? How to solve it? > > > > Thanks a lot. > > > > > > Shuaifeng(Frank) Zhou > > Huawei Technologies Co., Ltd. > > Tel: +86-29-81873251 > > Fax: +86-29-81873238 > > Mobile: +86-13572288349 > > E-mail: [email protected] > > www.huawei.com > > ********************************************************************** > > ****** > > *********** > > This e-mail and its attachments contain confidential information from > > HUAWEI, which is intended only for the person or entity whose address > > is listed above. Any use of the information contained herein in any > > way (including, but not limited to, total or partial disclosure, > > reproduction, or dissemination) by persons other than the intended > > recipient(s) is prohibited. If you receive this e-mail in error, > > please notify the sender by phone or email immediately and delete it! > > ********************************************** > > > >
