来自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
创建两个目录的目的是什么?
谢谢。
答案 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/