Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

Not getting Hive databases details inside swing UI

avatar
Contributor

I am creating a java swing ui which will connect to Hive databases and tables and provide me the details on UI itself.

 

I am able to generate the UI but details of all Hive databases and tables are not comming except the "default" database. But inside "default" database also I am not able to get the tables present inside it.

 

Here is the code to retrieve the Hive database 

 

    HiveConf hconf = new HiveConf(); 

    HiveMetaStoreClient msClient = new HiveMetaStoreClient(hconf); 

    List<String> dbs = msClient.getAllDatabases(); 

    System.out.println(All Databases: "+ dbs); //All Databases: [default]

    List<String> tbls = msClient.getAllTables(dbName); 

    System.out.println(All Tables: "+ tbls); // All Tables: [] 

 

 

System details

Hadoop distribution: Cloudera Quickstart VM on Windows 

version: CDH5.4.2

 

My hive-site.xml looks like this

 

    <property>

    <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:mysql://127.0.0.1/metastore?createDatabaseIfNotExist=true</value>

    <description>JDBC connect string for a JDBC metastore</description>

      </property>

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

        <description>Driver class name for a JDBC metastore</description>

      </property>

      <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>hive</value>

      </property>

      <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>cloudera</value>

      </property>

      <property>

        <name>hive.hwi.war.file</name>

        <value>/usr/lib/hive/lib/hive-hwi-0.8.1-cdh4.0.0.jar</value>

        <description>This is the WAR file with the jsp content for Hive Web Interface</description>

      </property>

      <property>

        <name>hive.metastore.uris</name>

        <value>thrift://127.0.0.1:9083</value>

        <description>IP address (or fully-qualified domain name) and port of the metastore host</description>

      </property>

    </configuration>

                                     

My thought 

In the process to solve this issue, I sysout hive conf properties 

 

    System.out.println("All Hive conf property: "+ hconf.getAllProperties().toString()); 

 

I found some properties where it uses derby database, I don't know from where it is using derby database

 

 

here are some output of hive conf properties when I sysout it 

 

    hive.stats.dbconnectionstring=jdbc:derby:;databaseName=TempStatsStore; 

    hive.stats.jdbcdriver=org.apache.derby.jdbc.EmbeddedDriver 

    javax.jdo.option.ConnectionURL=jdbc:derby:;databaseName=metastore_db;create=true, 

    javax.jdo.option.ConnectionDriverName=org.apache.derby.jdbc.EmbeddedDriver, 

 

From the output it looks it is connecting to derby database, but I am not getting why it is connecting to derby database, since in my **hive-site.xml** It is mentioned mysql database. 

 

Please help me out in this.

1 ACCEPTED SOLUTION

avatar
Contributor

Resolved the issue. Need to add hive conf as external class folder in your build path.

 

Right click on you project in eclipse -- Build Path -- Configure Build Path -- Java Build Path -- Libraries --  Add External Class Folder -- select the conf folder (/usr/lib/hive/conf) -- OK -- OK

 

All done. Now I am able to get my hive databases and tables.

View solution in original post

1 REPLY 1

avatar
Contributor

Resolved the issue. Need to add hive conf as external class folder in your build path.

 

Right click on you project in eclipse -- Build Path -- Configure Build Path -- Java Build Path -- Libraries --  Add External Class Folder -- select the conf folder (/usr/lib/hive/conf) -- OK -- OK

 

All done. Now I am able to get my hive databases and tables.