What does this usually mean?
hive> SHOW TABLES;
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
Time taken: 2.228 seconds
Josh
On Dec 9, 2008, at 9:15 AM, Joydeep Sen Sarma wrote:
We use mysql as metadb server.
Prasad can give a more detailed response when he’s back – but here
are the relevant entries from our hive-default.xml:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://xxx.yyy.facebook.com/hms_during_upgrade?
createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>xxxxxx</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, dat
abase</description>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
- autoCreateSchema will probably have to be true for first
time deployment.
- Not sure usefilestore is required or not – this is just a
vestige from older code that’s saying that we want to use db backed
metastore. No harm putting it there
- Hive.metastore.local – this is important since we want to
connect from hive cli directly to metastore (hence ‘local’) (instead
of through a thrift server)
- checkForDefaultDb – not entirely sure about this – but
this was having some performance impact for us.
Hope this helps,
Joydeep
From: Bill Au [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 09, 2008 7:21 AM
To: [email protected]
Subject: Re: Metadata in Multiuser DB
I followed the instruction in the wiki for using derby in network
server mode and was able to get hive running in multi-user mode. I
would be interested in using mysql instead. Not sure if I will have
time to try to get that working so instructions from someone who has
already done so would be very useful.
Bill
On Tue, Dec 9, 2008 at 9:46 AM, Edward Capriolo
<[EMAIL PROTECTED]> wrote:
You have two options:
1) You can start derby in network server mode rather than embedded.
http://wiki.apache.org/hadoop/HiveDerbyServerMode
2) You can also follow the above instructions and replaced derby with
an jpox capable database.
If you were going to use another database besides derby server mode
like mysql. It would be cool if you added another wiki with
instructions. I have never tried mysql as a metastore but it may have
better performance/be more tunable then derby.