You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Paul Yang (JIRA)" <ji...@apache.org> on 2010/07/01 21:06:00 UTC

[jira] Commented: (HIVE-1428) ALTER TABLE ADD PARTITION fails with a remote Thirft metastore

    [ https://issues.apache.org/jira/browse/HIVE-1428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12884383#action_12884383 ] 

Paul Yang commented on HIVE-1428:
---------------------------------

Can you try using a thread to create a HiveMetaStore instance?

e.g.

{code}

  private static class RunMS implements Runnable {

    @Override
    public void run() {
      System.out.println("Running metastore!");
      String [] args = new String [0];
      HiveMetaStore.main(args);
    }

  }

  @Override
  protected void setUp() throws Exception {
    super.setUp();

    Thread t = new Thread(new RunMS());
    t.start();

    // Wait a little bit for the metastore to start. Should probably have
    // a better way of detecting if the metastore has started?
    Thread.sleep(5000);

    // Set conf to connect to the local metastore.
    HiveConf hiveConf = new HiveConf(this.getClass());
    // hive.metastore.local should be defined in HiveConf
    hiveConf.set("hive.metastore.local", "false");
    hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, "thrift://localhost:9083");
    // There's a bug in HiveConf that needs to be fixed before this next line 
    // will work
    // Change METATORETHRIFTRETRIES("hive.metastore.connect.retries", ""),
    // To METATORETHRIFTRETRIES("hive.metastore.connect.retries", 3),
    hiveConf.setIntVar(HiveConf.ConfVars.METATORETHRIFTRETRIES, 3);

    client = new HiveMetaStoreClient(hiveConf);
    // Now you have the client - run necessary tests.
  }
{code}

> ALTER TABLE ADD PARTITION fails with a remote Thirft metastore
> --------------------------------------------------------------
>
>                 Key: HIVE-1428
>                 URL: https://issues.apache.org/jira/browse/HIVE-1428
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Metastore
>    Affects Versions: 0.6.0, 0.7.0
>            Reporter: Paul Yang
>         Attachments: HIVE-1428.patch, TestHiveMetaStoreRemote.java
>
>
> If the hive cli is configured to use a remote metastore, ALTER TABLE ... ADD PARTITION commands will fail with an error similar to the following:
> [pradeepk@chargesize:~/dev/howl]hive --auxpath ult-serde.jar -e "ALTER TABLE mytable add partition(datestamp = '20091101', srcid = '10',action) location '/user/pradeepk/mytable/20091101/10';"
> 10/06/16 17:08:59 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively
> Hive history file=/tmp/pradeepk/hive_job_log_pradeepk_201006161709_1934304805.txt
> FAILED: Error in metadata: org.apache.thrift.TApplicationException: get_partition failed: unknown result
> FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
> [pradeepk@chargesize:~/dev/howl]
> This is due to a check that tries to retrieve the partition to see if it exists. If it does not, an attempt is made to pass a null value from the metastore. Since thrift does not support null return values, an exception is thrown.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.