NFS 代替 HDFS
Posted
技术标签:
【中文标题】NFS 代替 HDFS【英文标题】:NFS instead of HDFS 【发布时间】:2019-04-18 20:05:21 【问题描述】:HDFS 是 Hadoop 的核心,我明白这一点。但是,如果我不想将数据存储在 HDFS 上怎么办。相反,我想对存储在可通过 NFS 协议访问的远程服务器上的数据进行分析和运行 Hadoop 作业?我该怎么做?
例如,我想使用 NFS 服务器上的数据运行 Teragen,如下所示:
hadoop jar hadoop-mapreduce-examples.jar teragen 1000000000 nfs://IP/some/path
我只是在寻找有关如何执行此操作的想法,并且我确实了解所有这些(HDFS 与 NFS)的影响。所以,虽然我很感激有人告诉我这是一个坏主意,但我仍然想为我正在尝试的一些实验做这件事。
我也许可以编写一些代码来实现这一点,但是任何我需要开始的指针都会很有帮助并且非常感谢。我也不想重新发明***。所以,如果我不知道这样的事情已经存在,请发表评论并告诉我。我构建的任何东西都将开源,以便其他人也可以受益。
【问题讨论】:
您总是可以反过来为 HDFS 创建一个 NFS 网关。 HDFS 的 NFS 网关已经存在 (hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/…),这不是我要说的。 NFS 网关所做的只是“允许将 HDFS 作为客户端本地文件系统的一部分挂载”。这与我问的非常不同,您可以在哪里对存储在远程 NFS 服务器上的数据运行 Hadoop 作业,与 HDFS 无关。 您始终可以在 YARN 本地模式下运行您的应用程序,并让您的数据路径指向 NFS 挂载的分区。我知道这应该在单个节点上工作,但你必须看看你是否可以在只运行 YARN 而没有 HDFS 的集群上做到这一点。当然,您的 NFS 挂载需要在所有集群主机上对称。 “NFS 挂载分区”破坏了我正在尝试做的事情。请再次阅读我的问题和描述。如果我挂载 NFS 分区,那将与 HDFS 完全相同,其中 NFS 卷看起来就像 Hadoop 的本地卷。我正在寻找的不同之处在于 HDFS 没有出现在图片中,因此 namenode 也没有出现(或者它可以,不确定如果没有数据存储在 HDFS 上它会如何工作)。使用一些 NFS 客户端读取和写入数据到远程 NFS 服务器。这就是我需要一些关于如何去做的指示。希望这可以澄清。 【参考方案1】:你知道这个网站吗: https://blog.netapp.com/blogs/run-big-data-analytics-natively-on-nfs-data/
看起来你可以在底层将 HDFS 与 NFS 交换,而在更高的抽象层上一切都像以前一样工作,因为 MapReduce/YARN 会为你处理一切。
我无法确定这是否有效,因为我们目前正准备建立这样一个“本机 NFS hadoop”。几个月后我会回来告诉你更多细节。
【讨论】:
以上是关于NFS 代替 HDFS的主要内容,如果未能解决你的问题,请参考以下文章