2
votes

I installed Hadoop and Hive on 3 cluster. I have able to login to hive from my cluster node where HIVE is running.

root@NODE_3 hive]# hive Logging initialized using configuration in jar:file:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.2.0.jar!/hive-log4j.properties Hive history file=/tmp/root/hive_job_log_root_201304020248_306369127.txt hive> show tables ; OK Time taken: 1.459 seconds hive>

But when i try to run some hive test on my cluster nodes , I am getting following given below error.

Here it is trying to initilize data base as user =ashsshar{my username}

3/04/02 02:32:44 INFO mapred.JobClient: Cleaning up the staging area hdfs://scaj-ns/user/ashsshar/.staging/job_201304020010_0080 13/04/02 02:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:ashsshar (auth:SIMPLE) cause:java.io.IOException: javax.jdo.JDOFatalDataStoreException: Failed to create database '/var/lib/hive/metastore/metastore_db', see the next exception for details. NestedThrowables: java.sql.SQLException: Failed to create database '/var/lib/hive/metastore/metastore_db', see the next exception for details. java.io.IOException: javax.jdo.JDOFatalDataStoreException: Failed to create database '/var/lib/hive/metastore/metastore_db', see the next exception for details. NestedThrowables: java.sql.SQLException: Failed to create database '/var/lib/hive/metastore/metastore_db', see the next exception for details.

I have tried two things .

1 . Giving permission to cd /var/lib/hive/metastore/metastore_db

  1. Removing rm /var/lib/hive/metastore/metastore_db/*lck

But still i am getting the same error

3
ARe u using a separate metestore or the embedded DB (Derby DB?) Please explain your setup little bit in more detailRags
Yes i am using Derby Db .| The following property is defined in my hive-site.xml file. <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>Ashish Sharma

3 Answers

1
votes

It seems to be an issue with creating the metastore. I solved this by creating a directory and setting the value to that directory as follows:

step-1: create a directory on home say its: hive-metastore-dir

step-2: being super user edit the hive-site.xml (its in: /usr/lib/hive/conf) as follows:

<name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>

to

<name>javax.jdo.option.ConnectionURL</name> 
  <value>jdbc:derby:;databaseName=/home/hive-metastore-dir/metastore/metastore_db;create=true</value>

step-3: start the CLI as sudo hive and perform your queries.

0
votes

You may login to hive client from a directory where the user has write access. By default, hive will try to create temporary directory in local and HDFS when a shell is opened up.

0
votes

follow this steps if you are using CDH 1. copy /usr/lib/hive/conf/hive-site.xml and paste into /usr/lib/spark/conf/

This will solve the problem of "metastore_db" error

Thanks