配置单元无法创建/user/hive/warehouse

kognpnkq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(10)|浏览(368)

我刚刚开始使用ApacheHive,我正在使用本地的UbuntuBox 12.04,以及Hive0.10.0和Hadoop1.1.2。
遵循apache网站上的官方“入门”指南,我现在只能使用hadoop命令来创建配置单元元存储,使用指南中的命令:

  1. $ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse

错误是 mkdir: failed to create /user/hive/warehouse hive是否需要特定模式下的hadoop?我知道我不需要对我的hadoop安装做太多的工作,只需要更新javahome,使其处于独立模式。我确信hadoop本身正在运行,因为我运行的是hadoop安装附带的pi示例。
另外,要创建的另一个命令 /tmp 显示 /tmp 目录已存在,因此无法重新创建,并且 /bin/hadoop fs -ls 正在列出当前目录。
那么,我该怎么处理呢?

xbp102n0

xbp102n01#

如果您正在运行linux check(在hadoop core-site.xml中)data directory&permission,那么看起来您保留了默认值,即/data/tmp和im大多数情况下将获得root权限。。更改xml配置文件,删除/data/tmp并运行fs format(在修改核心xml配置后运行oc)

5ssjco0h

5ssjco0h2#

在spark配置中设置hadoop属性时,在它们前面加上前缀 spark.hadoop .
因此设置

  1. conf.set("spark.hadoop.hive.metastore.warehouse.dir","/new/location")

这适用于旧版本的spark。spark 2.0.0中的属性已更改

0g0grzrc

0g0grzrc3#

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

  1. 1. Run command as superuser
  2. OR
  3. 2.Create the warehouse in your home directory.

如果有帮助,请告诉我们。祝你好运!

huus2vyu

huus2vyu4#

运行此命令并尝试创建一个目录,它将在hdfs/user目录中为用户授予完全权限。hadoop fs-chmod-r 755/用户

vwoqyblh

vwoqyblh5#

我使用macos和自制软件作为包管理器。我必须将hive-site.xml中的属性设置为

  1. <property>
  2. <name>hive.metastore.warehouse.dir</name>
  3. <value>/usr/local/Cellar/hive/2.3.1/libexec/conf/warehouse</value>
  4. </property>
cuxqih21

cuxqih216#

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

  1. SET hive.metastore.warehouse.dir=${env:HOME}/Documents/hive-warehouse;

可以指定要用作仓库的任何文件夹。显然,任何其他配置单元配置方法都可以(例如hive-site.xml或hive-hiveconf)。
这可能是ambarish hazarnis在说“或在您的主目录中创建仓库”时牢记的。

ecfdbz9o

ecfdbz9o7#

几乎所有的文档示例都有错误的命令。与unix一样,您也需要“-p”标志来创建父目录,除非您已经创建了它们。这个命令行得通。

  1. $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
0qx6xfy6

0qx6xfy68#

为看到同样问题的cloudera cdh用户添加ref的答案。
如果您使用的是cloudera cdh发行版,请确保遵循以下步骤:
单击桌面图标启动cloudera manager(express/enterprise)。
在浏览器中打开cloudera管理器页
启动所有服务
默认情况下,cloudera创建了/user/hive/warehouse文件夹。只是yarn和hdfs可能无法启动并运行以访问此路径。

2mbi3lxu

2mbi3lxu9#

我建议使用hive的更高版本,即1.1.0版本,0.10.0版本非常有缺陷。

ocebsuys

ocebsuys10#

虽然这是一个简单的权限问题,我在上面的评论中用sudo解决了,但有几个注意事项:
在home目录中创建也可以,但是您可能需要更新metastore路径的配置单元设置,我认为默认为/user/hive/warehouse
我在使用hive shell时遇到另一个create table语句错误,错误如下:
配置单元>创建表戳(foo int,bar string);失败:元数据出错:metaexception(message:got exception:java.io.filenotfoundexception file:/user/hive/warehouse/pokes不存在。)失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1
这是另一个权限问题,您必须创建一个名为“hive”的组,然后将当前用户添加到该组,并将/user/hive/warehouse的所有权更改到该组。在那之后,它就起作用了。有关详细信息,请访问以下链接:
http://mail-archives.apache.org/mod_mbox/hive-user/201104.mbox/%3cbanlktinq4xwjeawu6zgeyzpfdurqf+j8bw@mail.gmail.com%3e

相关问题