如何查看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/
有子目录,如current
、detach/
、tmp/
blocksBeingWritten/
以及另外两个文件in_use.lock
、storage
。
这些目录是在 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数据目录结构?的主要内容,如果未能解决你的问题,请参考以下文章