Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-5606

Default Derby metastore_db initial creation fails if hive.metastore.schema.verification=true

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • 0.12.0
    • None
    • Database/Schema
    • None
    • JDK 1.6.0_43, Hadoop 1.2.1

    • Incompatible change

    Description

      Hive cannot create the default//initial/Derby metastore_db, if new 0.12 configuration property hive.metastore.schema.verification is set to true.

      1. Start with a clean 0.12 installation, or remove any existing (Derby) default metastore_db directory
      2. In hive-site.xml, set hive.metastore.schema.verification=true
      3. Start hive CLI
      4. Run hive> create database if not exists mydb;

      The following exception occurs:

      2013-10-22 15:02:59,390 WARN  bonecp.BoneCPConfig (BoneCPConfig.java:sanitize(1537)) - Max Connections < 1. Setting to 20
      2013-10-22 15:03:01,899 ERROR exec.DDLTask (DDLTask.java:execute(435)) - org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
              at org.apache.hadoop.hive.ql.metadata.Hive.createDatabase(Hive.java:231)
              at org.apache.hadoop.hive.ql.exec.DDLTask.createDatabase(DDLTask.java:3442)
              at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:227)
              at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151)
              at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65)
              at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414)
              at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192)
              at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020)
              at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888)
              at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259)
              at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)
              at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413)
              at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:781)
              at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
              at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614)
              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:160)
      Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
              at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1212)
              at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:62)
              at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)
              at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2372)
              at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2383)
              at org.apache.hadoop.hive.ql.metadata.Hive.createDatabase(Hive.java:225)
              ... 19 more
      Caused by: java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
              at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
              at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1210)
              ... 24 more
      Caused by: MetaException(message:Version information not found in metastore. )
              at org.apache.hadoop.hive.metastore.ObjectStore.checkSchema(ObjectStore.java:5638)
              at org.apache.hadoop.hive.metastore.ObjectStore.verifySchema(ObjectStore.java:5622)
              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.hive.metastore.RetryingRawStore.invoke(RetryingRawStore.java:124)
              at com.sun.proxy.$Proxy10.verifySchema(Unknown Source)
              at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:403)
              at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:441)
              at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:326)
              at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaStore.java:286)
              at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:54)
              at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:59)
              at org.apache.hadoop.hive.metastore.HiveMetaStore.newHMSHandler(HiveMetaStore.java:4060)
              at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:121)
              ... 29 more
      
      2013-10-22 15:03:01,900 ERROR ql.Driver (SessionState.java:printError(419)) - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
      

      The version check should not apply when creating the initial Derby metastore_db.

      Workaround: set hive.metastore.schema.verification=false, run Hive CLI and perform any operation that forces the metastore to be created. On 0.12 this will add the 0.12.0 version to the VERSION table. You can then change hive.metastore.schema.verification=true if you prefer for subsequent access.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              brett_s_r Brett Randall
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated: