我必须创建/ tmp和/ user / hive / warehouse吗?

时间:2019-05-14 01:18:49

标签: hadoop hive

来自https://cwiki.apache.org/confluence/display/Hive/GettingStarted

  

正在运行Hive

     

Hive使用Hadoop,所以:

     
      
  • 您的路径中必须包含Hadoop或
  •   
  • 导出HADOOP_HOME =
  •   
     

此外,您必须使用下面的HDFS命令创建/ tmp和   / user / hive / warehouse(又名hive.metastore.warehouse.dir)并进行设置   chmod g + w,然后才能在Hive中创建表。

  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

我无法运行两个-mkdir命令:

$ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
mkdir: `/tmp': File exists

`/ tmp'已经存在于我的Ubuntu本地ext4文件系统中。

$ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
mkdir: `/user/hive/warehouse': No such file or directory

在我的Ubuntu的本地ext4文件系统中没有/usr/hive/warehouse

那么运行-mkdir创建两个目录的目的是什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

  

mkdir:`/ tmp':文件存在

此文件夹已存在于hdfs中。因此,在运行mkdir命令时出现“文件存在”错误。

您可以使用列表命令进行检查: hadoop fs -ls /

  

mkdir:`/ user / hive / warehouse':没有这样的文件或目录

mkdir命令创建新目录,但是不创建父目录。如果路径中不存在任何父目录,则会收到“无此文件或目录”错误。在这种情况下,“用户”或“配置单元”目录都不存在。

您可以使用列表命令进行检查: hadoop fs -ls / user

使用'-p'选项运行'mkdir'命令会创建所有丢失的父目录。

hadoop fs -mkdir -p /user/hive/warehouse 

'/ tmp'和'/ user / hive / warehouse'目录均在hdfs文件系统中创建。您无法使用本地文件系统命令查看这些文件夹。

  

`/ tmp'已经存在于我的Ubuntu本地ext4文件系统中。

此/ tmp文件夹由您的操作系统维护,并用于保存临时文件。与hdfs无关。

要列出hdfs中的文件夹,

hadoop fs -ls /user
hadoop fs -ls /
hadoop fs -ls /user/hive/