如何解决“文件:/ user / hive / warehouse / records不是目录或无法创建目录”错误?

时间:2019-05-14 00:48:08

标签: hadoop hive hdfs

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/的信息?

谢谢。

1 个答案:

答案 0 :(得分:1)

在运行hive命令之前,应在hdfs文件系统中创建 / user / hive / warehouse 文件夹。

Hive内部使用hadoop hdfs文件系统存储数据库数据。您可以使用以下命令在hive-default.xml和/或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文件系统中创建目录并授予对配置单元的访问权限

    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 Wiki page