我目前正在阅读有关hadoop的内容,而且我遇到了令我困惑的事情(请记住,当涉及到hadoop时我是一个完整的新手) -
使用Hadoop get命令将文件从HDFS复制到本地文件 系统:
$ hadoop hdfs dfs -get file_name /user/login_user_name
什么是本地文件系统?据我所知,HDFS将文件分区到整个群集中的不同块(但我知道还有更多的内容)。我对上述命令的理解是我可以将文件从集群复制到我的个人(即本地)计算机上吗?还是完全错了?我不完全确定本地文件系统的含义。
答案 0 :(得分:0)
LocalFS意味着它可能是您的LinuxFS或WindowsFS。而且这不是DFS的一部分。
您的理解是正确的,使用-get
您将从HDFS获取文件到本地FS,并且您不能同时使用hadoop
和hdfs
。命令应如下所示
hdfs dfs -get file_name local_path
或hadoop fs -get file_name local_path
答案 1 :(得分:0)
根据文件系统逻辑,您可以将文件系统划分为不同的驱动器。以同样的方式,您可以在linux文件系统中创建hadoop文件系统作为单独的文件系统。 在将文件从计算机复制到hadoop时,本地文件系统将是您已安装hadoop.your计算机的文件系统,在这种情况下,本机将充当本地计算机。 你可能想看一下:HDFS vs LFS
答案 2 :(得分:-1)
认为群集节点(服务器)必须满足以下需求:
在每个群集数据节点中,需要有2个独立的文件系统:
和
LOCAL< ==>操作系统和应用程序以及特定的数据和用户相关文件或"本地"到特定服务器的操作本身;
DISTRIBUTED< ==>分片/复制数据;能够由集群中所有服务器的所有资源同时处理。
文件可以在服务器的LOCAL文件系统中启动,这是一个小小的"凡人" file - unsharded,unplicated,undistributed;如果您要删除这一个副本,该文件已经消失了......
...但是,如果您首先将该文件移动到群集的DISTRIBUTED文件系统,那么它将被分片,复制并分布在至少3个不同的驱动器上,这些驱动器可能位于3个不同的服务器上,这些服务器都参与群集,因此,如果要删除其中一个驱动器上的此文件的副本,则群集本身仍将包含同一文件(或分片)的2个MORE副本;在本地系统中,您的小凡人文件只能由一台服务器及其资源(CPU + RAM)处理......
...一旦该文件被移动到CLUSTER,现在它被分成至少3个不同服务器上的无数小块(很可能还有很多),并且该文件可以有很少的分片全部由参与集群的所有服务器的所有资源(CPU和RAM)同时处理。
并且LOCAL文件系统和在每台服务器上运行的DISTRIBUTED文件系统之间存在差异,这是集群计算能力的秘诀:-)!...
希望这能更清楚地了解这两个常常令人困惑的概念之间的区别!
- 来自北极光的标记