如何解决错误 "file:/user/hive/warehouse/records is not a directory or unable to create one"?
How can I solve the error "file:/user/hive/warehouse/records is not a directory or unable to create one"?
hive> CREATE TABLE records (year STRING, temperature INT, quality INT)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '\t';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:file:/user/hive/warehouse/records is not a directory or unable to create one)
如何解决错误?
/user/hive/warehouse/
在哪里?在我 Ubuntu 下的本地 ext4 文件系统中,没有 /user/hive/warehouse/
这样的路径。
我怎样才能得到关于检查 /user/hive/warehouse/
的信息?
您应该在 运行 hive 命令之前在 hdfs 文件系统中创建 /user/hive/warehouse 文件夹。
Hive内部使用hadoop hdfs文件系统来存储数据库数据。您可以在 hive-default.xml and/or hive-site.xml 配置文件或 hive 终端中检查 hdfs 目录路径,使用以下命令
hive> set hive.metastore.warehouse.dir;
如前所述,Hive 使用 Hadoop,因此
- 必须安装 Hadoop 并且 运行 状态
HADOOP_HOME 必须设置环境变量
export HADOOP_HOME=hadoop-install-dir
export PATH=$PATH:$HADOOP_HOME/bin
必须创建 hdfs 文件系统中的目录并授予对 hive 的访问权限
hadoop fs -mkdir -p /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
列出 hdfs 文件系统中的目录
hadoop fs -ls /user
hadoop fs -ls /
hadoop fs -ls /user/hive/
hive> CREATE TABLE records (year STRING, temperature INT, quality INT)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '\t';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:file:/user/hive/warehouse/records is not a directory or unable to create one)
如何解决错误?
/user/hive/warehouse/
在哪里?在我 Ubuntu 下的本地 ext4 文件系统中,没有 /user/hive/warehouse/
这样的路径。
我怎样才能得到关于检查 /user/hive/warehouse/
的信息?
您应该在 运行 hive 命令之前在 hdfs 文件系统中创建 /user/hive/warehouse 文件夹。
Hive内部使用hadoop hdfs文件系统来存储数据库数据。您可以在 hive-default.xml and/or hive-site.xml 配置文件或 hive 终端中检查 hdfs 目录路径,使用以下命令
hive> set hive.metastore.warehouse.dir;
如前所述,Hive 使用 Hadoop,因此
- 必须安装 Hadoop 并且 运行 状态
HADOOP_HOME 必须设置环境变量
export HADOOP_HOME=hadoop-install-dir
export PATH=$PATH:$HADOOP_HOME/bin
必须创建 hdfs 文件系统中的目录并授予对 hive 的访问权限
hadoop fs -mkdir -p /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
列出 hdfs 文件系统中的目录
hadoop fs -ls /user
hadoop fs -ls /
hadoop fs -ls /user/hive/