Down load the jar from here http://dev.mysql.com/downloads/connector/j/5.1.html


________________________________
From: Prasad Chakka <[email protected]>
Reply-To: <[email protected]>
Date: Sat, 24 Jan 2009 13:13:35 -0800
To: <[email protected]>
Subject: Re: Still can't get metastore working with mysql

JPOX/Hive doesn't yet download the relevant client libraries based on the class 
name :) Drop mysql client jar in hive/lib.  Also try setting 
org.jpox.autoCreateSchema to true.

________________________________
From: Josh Ferguson <[email protected]>
Reply-To: <[email protected]>
Date: Sat, 24 Jan 2009 13:06:26 -0800
To: <[email protected]>
Subject: Re: Still can't get metastore working with mysql

So I'm not really sure what the state of the database should be, I have a 
database called hive and the user has permissions to access it. I'm not sure 
which mysql client libraries need to be in the classpath, I assumed it was all 
rolled into the jpox stuff. Here is the complete error:

09/01/24 16:02:16 DEBUG exec.DDLTask: 
org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Got 
exception: javax.jdo.JDOFatalInternalException Error creating transactional 
connection factory)
at org.apache.hadoop.hive.ql.metadata.Hive.getTablesByPattern(Hive.java:446)
at org.apache.hadoop.hive.ql.metadata.Hive.getAllTables(Hive.java:433)
at org.apache.hadoop.hive.ql.exec.DDLTask.showTables(DDLTask.java:330)
at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:127)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:212)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:174)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:207)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:268)
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:165)
at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)
Caused by: MetaException(message:Got exception: 
javax.jdo.JDOFatalInternalException Error creating transactional connection 
factory)
at 
org.apache.hadoop.hive.metastore.MetaStoreUtils.logAndThrowMetaException(MetaStoreUtils.java:543)
at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTables(HiveMetaStoreClient.java:451)
at org.apache.hadoop.hive.ql.metadata.Hive.getTablesByPattern(Hive.java:444)
... 16 more


On Jan 24, 2009, at 12:58 PM, Prasad Chakka wrote:

There could be many reasons for it. Could you post the stacktrace for the 
JDOFatal?

 Some reasons could be
 That mysql client libs are in the classpath.
 That there is a database called 'hive' in mysql
 That there is schema already created in that database (otherwise set 
autoCreateSchema to true) etc...

 Check documentation for the many jpox options

________________________________
From: Josh Ferguson <[email protected]>
 Reply-To: <[email protected]>
 Date: Sat, 24 Jan 2009 12:48:27 -0800
 To: <[email protected]>
 Subject: Still can't get metastore working with mysql

 Ok I still can't manage to get the metastore working with mysql after
 all this time trying. The error is:

 FAILED: Error in metadata: MetaException(message:Got exception:
 javax.jdo.JDOFatalInternalException Error creating transactional
 connection factory)
 FAILED: Execution Error, return code 1 from
 org.apache.hadoop.hive.ql.exec.DDLTask

 The relevant config is:

 <!-- Hadoop Setup -->
 <property>
    <name>hadoop.bin.path</name>
    <value>/usr/local/hadoop/bin/hadoop</value>
    <description>Path to hadoop binary. Assumes that by default we are
 executing from hive</description>
 </property>

 <property>
    <name>hadoop.config.dir</name>
    <value>/usr/local/hadoop/conf</value>
    <description>Path to hadoop configuration. Again assumes that by
 default we are executing from hive/</description>
 </property>

 <!-- Hive Execution Parameters -->
 <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive-${user.name}</value>
    <description>Scratch space for Hive jobs</description>
 </property>

 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost/hive</value>
 </property>

 <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
 </property>

 <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>******</value>
 </property>

 <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>******</value>
 </property>

 <property>
    <name>org.jpox.autoCreateSchema</name>
    <value>false</value>
 </property>

 <property>
    <name>org.jpox.fixedDatastore</name>
    <value>true</value>
 </property>

 <property>
    <name>hive.metastore.usefilestore</name>
    <value>false</value>
 </property>

 <property>
    <name>hive.metastore.checkForDefaultDb</name>
    <value>false</value>
 </property>

 <property>
    <name>hive.metastore.rawstore.impl</name>
    <value>org.apache.hadoop.hive.metastore.ObjectStore</value>
    <description>Name of the class that implements
 org.apache.hadoop.hive.metastore.rawstore interface. This class is
 used to store and retrieval of raw metadata objects such as table,
 database</description>
 </property>

 <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>







Reply via email to