Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
When you use Azure PowerShell to run HiveQL statements against HDInsight or HDInsight emulator, you might get the following error:
Failed with exception Unable to rename:
wasb://xxxxxxx@xxxxxxxx.blob.core.windows.net/hive/scratch/hive_2014-02-12_14-58-27_594_640725686036024640-1/-ext-10001
to: wasb://xxxxxxxx@xxxxxxxx.blob.core.windows.net/apps/hive/warehouse/delays
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
Creating a /apps/hive/warehouse folder on HDInsight can bypass this error message, but could run into another problem. You might notice a newly created Hive table doesn't contain any records. In the error log, you could find the data file was moved to the /apps/hive/warehouse folder instead of the /hive/warehouse folder.
This problem was fixed in HDInsight clusters version 3.1 and higher, with the exception of HBase deployments (fix in the works).
**
To automate this fix where needed:
**You can use PowerShell to deploy HDInsight following this blog article and this documentation with a custom configuration for the Hadoop Core settings, to include this workaround each time you create a cluster from PowerShell scripts.
These are the two key syntax lines to use with a code sample.
# Customize Core configuration options
$CoreConfigValues = @{ "templeton.hive.properties"="hive.metastore.local=false,hive.metastore.uris=thrift://headnodehost:9083,hive.metastore.warehouse.dir=/hive/warehouse/" }
...
| Add-AzureHDInsightConfigValues -Core $CoreConfigValues
...
This ends up putting the value in this core-site.xml file on the nodes:
"C:\apps\dist\hadoop-2.4.0.2.1.6.0-2103\etc\hadoop\core-site.xml"
<property>
<name>templeton.hive.properties</name>
<value>hive.metastore.local=false,hive.metastore.uris=thrift://headnodehost:9083,hive.metastore.warehouse.dir=/hive/warehouse/</value>
</property>
To fix the problem on HDInsight cluster version 3.0:
Connect to the cluster head node using RDP. For instructions, see Administer HDInsight clusters using Management portal.
Use a text editor to open C:\apps\dist\hcatalog-0.12.0.2.0.7.0-1528\etc\webhcat\webhcat-site.xml.
Find the following tags:
<property> <name>templeton.hive.properties</name> <value>hive.metastore.local=false,hive.metastore.uris=thrift://headnodehost:9083,hive.metastore.warehouse.dir=/apps/hive/warehouse</value> <description>Properties to set when running hive.</description> </property>
Replace /apps/hive/warehouse to /hive/warehouse.
Save the file.
Open Service from Administrative Tools, and restart Apache Hadoop templeton.
To fix the problem on HDInsight cluster version 2.1:
Connect to the cluster head node using RDP. For instructions, see Administer HDInsight clusters using Management portal.
Use a text editor to open C:\apps\dist\hcatalog-0.11.0.1.3.2.0-05\conf\webhcat-site.xml.
Find the following tags:
<property> <name>templeton.hive.properties</name> <value>hive.metastore.local=false,hive.metastore.uris=thrift://headnodehost:9083,hive.metastore.warehouse.dir=/apps/hive/warehouse</value> <description>Properties to set when running hive.</description> </property>
Replace /apps/hive/warehouse to /hive/warehouse.
Save the file.
Open Service from Administrative Tools, and restart Apache Hadoop templeton.
To fix the problem on HDInsight emulator:
Use a text editor to open C:\Hadoop\hive-0.9.0\conf\hive-site.xml.
Find the following tags:
<property> <name>hive.metastore.warehouse.dir</name> <value>/apps/hive/warehouse</value> <description>location of default database for the warehouse</description> </property>
Replace /apps/hive/warehouse to /hive/warehouse.
Save the file.
Open Service from Administrative Tools, and restart Apache Hadoop templeton.