如何查看hadoop数据目录结构?

Posted

技术标签:

【中文标题】如何查看hadoop数据目录结构?【英文标题】:How to view the hadoop data directory structure? 【发布时间】:2013-01-28 04:18:18 【问题描述】:

我在 hive 中有分区表。所以我想看看hadoop hdfs中的目录结构?

从documentation,我找到了以下命令

hadoop fs -ls /app/hadoop/tmp/dfs/data/

/app/hadoop/tmp/dfs/data/ 是我的数据路径。但是这个命令返回

ls: 无法访问 /app/hadoop/tmp/dfs/data/: 没有这样的文件或 目录。

我错过了什么吗?

【问题讨论】:

您确定此路径中有数据吗?你是如何验证的?此错误可能意味着您那里什么都没有或配置错误。 我的hadoop临时目录路径是/app/hadoop/tmp,所以数据路径作为dfs/data/附加到临时目录。而/app/hadoop/tmp/dfs/data/ 有子目录,如currentdetach/tmp/blocksBeingWritten/ 以及另外两个文件in_use.lockstorage 这些目录是在 HDFS 中还是在您的本地磁盘上?您是如何创建 Hive 表的? 我只是用普通的命令行去了那里,我只是用普通的带分区的sql创建了配置单元表。 你试过hadoop fs -ls /user/hive/warehouse看看你的桌子有没有吗? 【参考方案1】:

除非我弄错了,否则您似乎正在寻找一个您可能在属性hadoop.tmp.dir 中定义的临时目录。这是一个本地目录,但是当您执行hadoop fs -ls 时,您正在查看 HDFS 中可用的文件,因此您什么也看不到。

由于您正在查找 Hive 目录,因此您正在 hive-site.xml 中查找以下属性:

hive.metastore.warehouse.dir

默认是/user/hive/warehouse,所以如果你没有改变这个属性你应该可以这样做:

hadoop fs -ls /user/hive/warehouse

这应该会显示您的表目录。

【讨论】:

感谢您的回答。 hive.metastore.warehouse.dir 已在 hive-default.xml.template 文件中设置。可以看到我的表,/user/hive/warehouse目录下的表分区。【参考方案2】:

检查您的 core-site.xml 文件和 hdfs-site.xml 中的 tmp 目录是否设置正确。 如果不设置,则操作系统的临时目录(ubuntu 中的 tmp 和 windows 中的 %temp%)将被设置为 hadoop tmp 文件夹,因此您可能会在重新启动计算机后丢失数据。在 xml 中设置此 dfs.tmp.dir 并重新启动集群。那时它会正常工作。 即使在此之后如果没有解决,请提供更多关于分区表代码和表数据的详细信息。

【讨论】:

以上是关于如何查看hadoop数据目录结构?的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop hadoop.tmp.dir 配置的目录下数据可以删除吗?

大数据:Hadoop文件操作HDFS常用命令

Hadoop之NameNode目录结构

hadoop2.7的目录结构

Hadoop学习笔记--HBase相关操作指令

Hadoop源码分析之NameNode的目录构成与类继承结构