无法在 Hive 中创建表
Posted
技术标签:
【中文标题】无法在 Hive 中创建表【英文标题】:Unable to create table in Hive 【发布时间】:2016-09-15 06:27:20 【问题描述】:我正在运行下面的简单查询来创建一个简单的表。
创建表测试(id int, name varchar(20));
但我收到以下错误,请告知具体需要做什么。
FAILED:执行错误,返回代码 1 从 org.apache.hadoop.hive.ql.exec.DDLTask。元异常(消息:文件:/用户 /hive/warehouse/test 不是目录或无法创建)
我已授予对 /user/hive/warehouse 文件夹的完全读/写权限。
【问题讨论】:
我认为这只是 SO 上的显示问题,但请检查实际错误消息是否还包含 /user 和 /hive/warehouse/test 之间的空格 【参考方案1】:您的 hive 用户没有在 hdfs 中创建 director 的权限。每当您创建表时,hive 都会在 User/hive/warehouse/table 中创建一个目录,但在这里它无法在 user/hive/warehouse/ 中创建一个目录,因此请授予该目录权限以允许您的用户创建表。
http://www.cloudera.com/documentation/archive/cdh/4-x/4-2-0/CDH4-Installation-Guide/cdh4ig_topic_18_7.html
【讨论】:
如果已经授予权限,请检查您在 hive-site.xml 中指定为 hive.metastore.warehouse.dir 的路径 谢谢。如果您能考虑***.com/questions/56121592/…,我将不胜感激,就我而言,/user/hive/warehouse/
不存在,因此我无法更改其访问模式。它位于哪里?【参考方案2】:
听起来像是权限问题。下面的更改模式命令可能会有所帮助。
hadoop fs -chmod -R 755 /user/hive/warehouse/
【讨论】:
【参考方案3】:错误信息说
file:/user /hive/warehouse/test".
尽管 /user 和路径的其余部分之间有空格,file:/ 意味着 Hive 正在尝试在本地文件系统上而不是 hdfs 上创建该目录。访问配置可能有问题。我会检查 HADOOP_CONF_DIR 环境变量是否已正确初始化。
【讨论】:
【参考方案4】:对我来说,这个问题和你的完全一样(创建内部表),与权限无关,但与存储有关,它被 100% 使用。尝试检查是否相同。
【讨论】:
以上是关于无法在 Hive 中创建表的主要内容,如果未能解决你的问题,请参考以下文章