Hive 0.14.0无法启动

时间:2014-11-18 06:56:37

标签: hadoop hive

我有hadoop 1.2.1,我在单节点上安装了hive 0.14.0

$ hive

Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.properties

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
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.main(RunJar.java:160)
Caused by: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x
at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:529)
at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:478)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430)
... 7 more

HDFS上的root scratch dir:/ tmp / hive应该是可写的。当前权限为:rwxrwxr-x。

我使用hadoop fs -chmod g+w /tmp/hive但不能正常工作。

3 个答案:

答案 0 :(得分:9)

使用以下命令

更新/ tmp / hive HDFS目录的权限
hadoop fs -chmod 777 /tmp/hive

如果是这样,你可以在本地和hdfs上删除/ tmp / hive。

hadoop fs -rm -r /tmp/hive;  
rm -rf /tmp/hive

此临时文件仅保留在此位置。即使我们删除它也没问题,将在需要时使用适当的权限创建。

答案 1 :(得分:2)

我做了一些实验,并认为这可能对某人有用。

当hive 0.14.0在没有首先在HDFS中创建/ tmp / hive的情况下启动时,该目录是使用模式711创建的。

drwx--x--x   - hadoop supergroup          0 2014-12-08 18:47 /tmp/hive

如果改为通过hadoop dfs -mkdir /tmp/hive创建目录,则默认为模式755。

drwxr-xr-x   - hadoop supergroup          0 2014-12-09 11:13 /tmp/hive

允许配置单元无错误启动所需的最低权限是733。

hadoop dfs -chmod 733 /tmp/hive

导致以下内容和配置单元成功启动。

drwx-wx-wx   - hadoop supergroup          0 2014-12-09 11:13 /tmp/hive

这让我相信hive 0.14.0在创建该目录时做错了。

答案 2 :(得分:0)

检查hive-site.xml上以下标记的值,然后更改所提及文件夹的权限

<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/mydir</value>
<description>Local scratch space for Hive jobs</description>
</property>

hadoop fs -rmr /tmp/mydir;
hadoop fs -mkdir /tmp/mydir;
hadoop fs -chmod 777 /tmp/mydir;
hadoop fs -chmod -R 777 /tmp/mydir;