无法在 Hive 中创建 table

Unable to create table in Hive

我在运行下面创建了一个简单的查询table。

create table test (id int, name varchar(20));

但是我收到以下错误,请告诉我具体需要做什么。

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:file:/user /hive/warehouse/test is not a directory or unable to create one)

我已授予对 /user/hive/warehouse 文件夹的完全 read/write 访问权限。

您的配置单元用户没有在 hdfs 中创建控制器的权限。每当你创建一个 table 时,hive 都会将一个目录创建到 User/hive/warehouse/table 但这里它无法创建一个目录到 user/hive/warehouse/ 所以授予该目录权限以允许你的用户创建一个table.

http://www.cloudera.com/documentation/archive/cdh/4-x/4-2-0/CDH4-Installation-Guide/cdh4ig_topic_18_7.html

错误消息显示

file:/user /hive/warehouse/test". 

尽管 /user 和路径的其余部分之间有 space,file:/ 意味着 Hive 正在尝试在您的本地文件系统上创建该目录而不是在 hdfs 上。访问配置可能有问题。我会检查 HADOOP_CONF_DIR 环境变量是否已正确初始化。

听起来像是权限问题。下面的更改模式命令可能会有所帮助。

hadoop fs -chmod -R 755 /user/hive/warehouse/

对我来说,这个问题和你的完全一样(create internal table),与权限无关,但与存储有关,它已被 100% 使用。尝试检查是否相同。