当前位置: 首页 > 面试题库 >

Hadoop上的HDFS位置是什么?

戴靖
2023-03-14
问题内容

在遵循一些在线教程之后,我试图在Hadoop中运行WordCount示例。但是,我不清楚,因为执行以下命令时文件将从本地文件系统复制到HDFS。

hadoop fs -copyFromLocal /host/tut/python-tutorial.pdf /usr/local/myhadoop-tmp/

当我执行以下命令时,我在HDFS上看不到我的python-tutorial.pdf。

hadoop fs -ls

这让我感到困惑。我已经在core-site.xml中指定了“ myhadoop-tmp”目录。我以为该目录将成为用于存储所有输入文件的HDFS目录。

core-site.xml
=============
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/myhadoop-tmp</value>
    <description>A base for other temporary directories.</description>
</property>

如果不是这种情况,HDFS在我的计算机上的什么位置?什么配置确定HDFS目录,当我们将输入文件从本地文件系统复制到HDFS时,输入文件会去哪里?


问题答案:

这是在dfs.datanode.data.dir属性中设置的,该属性默认为file://${hadoop.tmp.dir}/dfs/data(在此处查看详细信息)。

但是,对于您而言,问题是您没有 HDFS中使用完整路径。相反,请执行以下操作:

hadoop fs -ls /usr/local/myhadoop-tmp/

请注意,您似乎还将HDFS中的路径与本地文件系统中的路径混淆了。在HDFS中,您的文件位于/usr/local/myhadoop- tmp/。在您的本地系统中(并根据您的配置设置),它位于/usr/local/myhadoop-tmp/dfs/data/;
下。在那里,有一个由HDFS定义的目录结构和命名约定,与您决定使用的HDFS中的任何路径无关。而且,它不会具有相同的名称,因为它分为多个块,并且每个块都分配有唯一的ID;一个街区的名字就像blk_1073741826

得出的结论是:datanode使用的本地路径与您在HDFS中使用的路径不同。您可以进入本地目录以查找文件,但是不应该这样做,因为这样可能会使HDFS元数据管理混乱。只需使用hadoop命令行工具,即可使用您希望使用的任何逻辑路径(在HDFS中)复制/移动/读取HDFS中的文件。HDFS中的这些路径不必与您用于本地数据节点存储的路径绑定在一起(没有理由或这样做的好处)。



 类似资料:
  • 我最近为建立了一个测试环境集群--一个主服务器和两个从服务器。 我对hadoop框架中不同xml的实际目的感到困惑:从我的一点了解来看: 1)--整个框架的配置参数,例如日志文件的位置、文件系统的默认名称等 2)-适用于单个数据阳极。数据阳极的复制次数、本地文件系统中的数据目录、块的大小等

  • 本文向大家介绍Hadoop的核心配置是什么?相关面试题,主要包含被问及Hadoop的核心配置是什么?时的应答技巧和注意事项,需要的朋友参考一下 解答: Hadoop的核心配置通过两个xml文件来完成: 1.hadoop-default.xml; 2.hadoop-site.xml。 这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在。

  • 我的理解是previous.checkpoint目录应该创建在由“fs.checkpoint.dir”指定的secondary name节点下?在所有情况下,我都在“dfs.name.dir”指定的namenode目录下找到它。这和伪模式有关还是我的理解错了?有人能帮帮我吗! 如果你需要更多的细节请告诉我。 谢谢抹布

  • 本文向大家介绍什么是Hadoop?相关面试题,主要包含被问及什么是Hadoop?时的应答技巧和注意事项,需要的朋友参考一下 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS

  • 我们的Hadoop集群上的空间用完,该集群是以以下方式设置的: null 将系统分区作为HDFS数据目录添加到DataNode配置是否安全? 恐怕Hadoop会填满分区,使系统无法使用。 最好的方法可能是设置、分离lvm卷或重新分区磁盘。但我会避免走这条路。

  • 到目前为止,我做了一些研究和ACC。据我所知,Hadoop在HDFS中提供了处理原始数据块(文件)的框架,而HBase是Hadoop之上的数据库引擎,它基本上处理结构化数据而不是原始数据块。Hbase在HDFS上提供了一个逻辑层,就像SQL一样。正确吗?