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>