“本地文件系统”是什么意思

wfypjpf4  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(621)

我目前正在阅读关于hadoop的文章,我遇到了这个让我困惑的问题(请记住,我是一个完全的hadoop新手)——
使用hadoop get命令将文件从hdfs复制到本地文件系统:

$ hadoop hdfs dfs -get file_name /user/login_user_name

什么是本地文件系统?我知道hdfs会在集群中将一个文件划分成不同的块(但我知道还有更多)。我对上述命令的理解是,我可以将一个文件从集群复制到我的个人(即本地)计算机上?还是完全错了?我只是不太清楚本地文件系统是什么意思。

f45qwnt8

f45qwnt81#

localfs意味着它可能是您的linuxfs或windowsfs。这不是dfs的一部分。
你的理解是正确的,使用 -get 您正在从hdfs获取文件到本地fs,不能同时使用这两个文件 hadoop 以及 hdfs . 命令应如下所示 hdfs dfs -get file_name local_path 或者 hadoop fs -get file_name local_path

von4xj4u

von4xj4u2#

根据文件系统逻辑,可以将文件系统划分为不同的驱动器。同样,您可以在linux文件系统中将hadoop文件系统创建为一个单独的文件系统。您的本地文件系统将是您安装了hadoop的文件系统。在这种情况下,您的计算机在将文件从您的计算机复制到hadoop时将充当本地的。你可能想看看:hdfs和lfs

0aydgbwb

0aydgbwb3#

将群集节点(服务器)视为必须满足2个需求:
需要存储自己的操作系统、应用程序和用户数据的相关文件;以及
需要存储分片或“分布式”集群数据文件的一部分。
在每个群集数据节点中,需要有两个独立的文件系统:
本地(“非分布式”)文件系统:
存储操作系统和所有与操作系统相关的辅助(“助手”)文件;
存储构成在服务器上运行的应用程序的二进制文件;
存储额外的数据文件,但这些文件以简单文件的形式存在,而不是在服务器的“群集数据”磁盘中进行分片/复制/分发;
通常由许多分区组成-单个磁盘或多个磁盘的整个格式化部分;
通常还运行lvm,以确保这些分区的“可扩展性”,这些分区包含与操作系统相关的关键代码,这些代码不允许饱和,否则服务器将遭受灾难性的(不可恢复的)故障。

分布式文件系统:
只存储实际上是“分布”在集群中所有其他数据节点的所有其他数据驱动器上的海量数据文件的分片、复制部分
通常由至少3个相同的磁盘组成,所有磁盘都是“原始”的,未格式化,没有任何类型的raid,也没有任何类型的lvm,因为群集软件(安装在“本地”文件系统上)实际上负责自己的复制和容错,所以raid和lvm实际上是冗余的,从而在整个集群性能中造成不必要的延迟。
本地<=>操作系统和应用程序以及特定于或“本地”特定服务器操作本身的数据和用户相关文件;
分布式<=>分片/复制数据;能够由群集中所有服务器中的所有资源并发处理。
一个文件可以从服务器的本地文件系统开始,在那里它是一个小小的“普通”文件—未归档、未复制、未分发;如果你要删除这一份,文件就不见了。。。
... 但是,如果您首先将该文件移动到群集的分布式文件系统,在该系统中,该文件将被分片、复制并分布在至少3个不同的驱动器上,这些驱动器可能位于3个不同的服务器上,这些服务器都参与了群集,因此,如果要删除其中一个驱动器上的该文件副本,集群本身仍将包含同一文件(或碎片)的两个以上副本;在本地系统中,您的小文件只能由一台服务器及其资源(CPU+ram)处理。。。
... 一旦该文件被移动到集群中,现在它被分割成无数个更小的片段,跨越至少3个不同的服务器(很可能更多),并且该文件可以让所有参与集群的服务器的所有资源(cpu和ram)同时处理它的小片段。
本地文件系统和在每台服务器上运行的分布式文件系统之间的区别,这就是群集计算能力的秘密:—)!。。。
希望这能更清楚地说明这两个经常混淆的概念之间的区别!
-北极光的标记

相关问题