Hive无法创建/ user/hive/warehouse

yut*_*net 9 hadoop hive

我刚刚开始使用Apache Hive,我正在使用我的本地Ubuntu盒子12.04,Hive 0.10.0和Hadoop 1.1.2.

按照Apache网站上的官方" 入门 "指南,我现在停留在Hadoop命令中,使用指南中的命令创建hive Metastore:

$ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
Run Code Online (Sandbox Code Playgroud)

错误是 mkdir: failed to create /user/hive/warehouse

Hive是否需要在特定模式下使用hadoop?我知道我不需要为我的Hadoop安装做太多其他更新JAVA_HOME,因此它处于独立模式.我确信Hadoop本身正在工作,因为我运行了hadoop安装附带的PI示例.

此外,另一个要创建的命令/tmp显示该/tmp目录已存在,因此它没有重新创建,并/bin/hadoop fs -ls列出了当前目录.

那么,我该如何解决呢?

小智 22

几乎所有文档示例都有错误.就像unix一样,你需要"-p"标志来创建父目录,除非你已经创建了它们.这个命令会起作用.

$HADOOP_HOME/bin/hadoop fs -mkdir -p    /user/hive/warehouse
Run Code Online (Sandbox Code Playgroud)


won*_*ice 5

在本地系统上运行 hive 时,只需添加到 ~/.hiverc :

SET hive.metastore.warehouse.dir=${env:HOME}/Documents/hive-warehouse;
Run Code Online (Sandbox Code Playgroud)

您可以指定任何文件夹用作仓库。显然,任何其他hive 配置方法都可以(例如,hive-site.xml 或 hive -hiveconf)。

这可能是Ambarish Hazarnis在说“或在您的主目录中创建仓库”时所牢记的。


小智 3

这似乎是一个权限问题。您有权访问根文件夹 / 吗?尝试以下选项 -

1. Run command as superuser

OR

2.Create the warehouse in your home directory. 
Run Code Online (Sandbox Code Playgroud)

让我们知道这是否有帮助。祝你好运!