【问题标题】:File system in hadoophadoop 中的文件系统
【发布时间】:2016-06-01 11:36:20
【问题描述】:

最近开始学习hadoop多集群

文件系统如何在 hadoop 中工作。

例如。如果我有一个包含完整农民详细信息的 test.txt 文件。 我是否需要在主 HDFS 服务器或从服务器中上传文件。

【问题讨论】:

    标签: linux hadoop hdfs bigdata


    【解决方案1】:

    要了解 Hadoop 文件系统的工作原理,请参阅Hadoop:权威指南

    一书

    暂时,要将文件加载到HDFS,只需要从集群的edgenode运行-put-copyFromLocal命令(意思是你可以从哪里运行hadoop命令),其余的将被占用由 Hadoop 框架处理。 你的命令可能看起来像

    hadoop fs设置

    $ hadoop fs -copyFromLocal /home/user1/farmer_details.txt /user/user1
    

    $ hadoop fs -put /home/user1/farmer_details.txt /user/user1
    

    你也可以试试hdfs dfs设置

    $ hdfs dfs -copyFromLocal /home/user1/farmer_details.txt /user/user1
    

    $ hdfs dfs -put /home/user1/farmer_details.txt /user/user1
    

    其中/home/user1/farmer_details.txt 是本地文件系统中的源位置,/user/user1 是 hadoop 文件系统中的目标位置。

    要验证上传的文件,可以运行命令

    $ hadoop fs -ls /user/user1
    

    你应该得到/user/user1/farmer_details.txt文件。

    【讨论】:

    • 非常感谢您的回复。您已经提到 /user/user1 是 hadoop 文件系统中的目标位置。这个 /user/user1 路径在哪里?无论是主服务器还是从服务器。
    • 您只需使用 Hadoop fs - mkdir 创建此目录。它的元数据将存储在 Namenode 上,即。主节点。当您加载数据时,数据将存储在 Datanode 上,即。从节点。
    • 非常感谢您的回答。因此文件将存储在 Datanode(Slave) 中,并且可以使用主服务器中的 Hadoop 进行访问。我现在知道了。我可以要您的电子邮件 ID:我仍然对 hadoop 有很多疑问
    【解决方案2】:

    首先,您需要将文件:text.txt 上传到集群的一个节点(可以是主服务器或从服务器),例如,上传到/tmp 文件夹,您得到:/tmp/text.txt,然后使用命令:

    # hadoop fs -put /tmp/text.txt /tmp
    

    然后使用命令:

    # hadoop fs -ls /tmp
    

    你会发现文件:text.txt 已经在那个 hdfs 文件夹中:/tmp

    【讨论】:

    • 你不能目录目录
    • "hadoop fs -put /tmp/text.txt /tmp" 假设如果我在数据节点 1(从属服务器)中创建一个 tmp 文件夹,如何在主服务器中访问它,例如 /tmp/text .txt 以及 /tmp 文件夹在哪里,无论是在主服务器还是从服务器中。如果是 HDFS,那么整个 test.txt 文件是上传到主服务器还是该文件的元数据。请更清楚地解释一下这个
    • 是的,请将 cat 改为 ls 的那个可以列出文件夹内容的命令。文件的元数据存储在namenode服务器中,文件的内容存储在从服务器中。在主服务器或namenode服务器中,您仍然可以使用Hadoop命令访问从服务器中的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多