title: HBase table ??? doesn't exist while the table is declared as an external table
body: <p>I'm trying to create a HBase table using Hive (which I am intending to fill it from another Hive table using insert), through the following:</p>
  
  <pre><code>CREATE EXTERNAL TABLE HBWeather (key struct&lt;USAF:INT, WBAN:INT, `Date`:STRING&gt;, TEMP INT)
  ROW FORMAT DELIMITED 
  COLLECTION ITEMS TERMINATED BY '~' 
  STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
  WITH SERDEPROPERTIES ('hbase.columns.mapping'=':key,T:Temp');
  </code></pre>
  
  <p>However I'm getting the following error:</p>
  
  <pre><code>FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:MetaException(message:HBase table hbweather doesn't exist while the table is declared as an external table.)
      at org.apache.hadoop.hive.hbase.HBaseStorageHandler.preCreateTable(HBaseStorageHandler.java:225)
      at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:731)
      at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:724)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:154)
      at com.sun.proxy.$Proxy23.createTable(Unknown Source)
      at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:830)
      at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:845)
      at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3979)
      at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:333)
      at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197)
      at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
      at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1858)
      at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1562)
      at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1313)
      at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1084)
      at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1072)
      at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232)
      at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183)
      at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399)
      at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776)
      at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)
      at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
      at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
  )
  </code></pre>
  
  <p><strong>What is the problem exactly? and how to fix it?</strong></p>
  
  <p>Thanks in advance</p>