无法从 $HIVE_HOME 以外的任何其他位置启动配置单元

Not able to start hive from any other location other than $HIVE_HOME

我已经用 Derby 10.12.1.1 安装了 Hive 2.1.0 我可以 运行 Hive 来自:

$HIVE_HOME

但是当我从另一个位置(例如根目录或其他位置)运行 时,它会抛出错误:

Exception in thread "main" java.lang.RuntimeException: Couldn't create directory $/tmp/98e1866e-f8c7-451d-b958-1f773f0c4b02_resources at org.apache.hadoop.hive.ql.util.ResourceDownloader.ensureDirectory(ResourceDownloader.java:123) at org.apache.hadoop.hive.ql.util.ResourceDownloader.(ResourceDownloader.java:48) at org.apache.hadoop.hive.ql.session.SessionState.(SessionState.java:376) at org.apache.hadoop.hive.ql.session.SessionState.(SessionState.java:350) at org.apache.hadoop.hive.cli.CliSessionState.(CliSessionState.java:60) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:663) 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:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

有人能帮帮我吗?

我通过编辑hive找出答案-site.xml

<property>
<name>hive.downloaded.resources.dir</name>
<value>$/tmp/${hive.session.id}_resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>

并将其更改为

<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hduser/hive/tmp/${hive.session.id}_resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>

问题已解决