我刚刚开始使用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)
在本地系统上运行 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)
让我们知道这是否有帮助。祝你好运!