HDFS 如何可视化和理解Hadoop DFS和Yarn架构?[已关闭]

uhry853o  于 2023-01-06  发布在  HDFS
关注(0)|答案(1)|浏览(190)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
昨天关门了。
Improve this question
我正试图从Bengfort和Kim的Data Analytics with Hadoop中阅读和理解Hadoop。
我知道这是一个分布式系统,但我不知道它是如何工作的(在一个合理的抽象层次上可视化它,而不是每个细节)。
开始,如果我有一些服务器,我可以使用它们来建立一个Hadoop集群吗?一个名称节点,其余的是数据节点?那么每个服务器的哪些目录将成为共享DFS的一部分?在哪里配置这些参数?
此外,任何访问HDFS的应用程序是否需要了解整个群集的详细信息?或者名称节点是否充当唯一的接口,而应用程序(本身可能运行在另一台服务器上)可以只与namenode通信以进行文件操作吗?(无论是Python、Java还是其他什么)将名称节点的IP地址作为配置的一部分吗?应用程序是否需要知道它是HDFS,或者应用程序可以将其视为另一个本地目录,让namenode抽象掉所有其他差异(例如ssh mount如何使远程文件系统看起来像本地文件系统,从而使应用程序看不到这一事实)?
我不知道我是否问对了问题,但我觉得这至少是一种方法,我可以沉下心来使用hadoop,而不是运行一些编造的代码。我知道这是很多,不可能在一个问题中全部回答,所以任何好的参考来理解这一点,或链接,将是伟大的。

lndjwyie

lndjwyie1#

一个名称节点,其余的是数据节点?
可以,但是你也可以(并且应该,现实地)运行一个备用的名称节点(在文档中称为名称节点HA),并且不是每台机器都需要是一个数据节点。
每个树莓派的哪些目录成为共享DFS的一部分?在哪里配置这些参数?
这些都在hdfs-site.xmldfs.datanode.data.dir中设置,默认值为file://${hadoop.tmp.dir}/dfs/datahadoop.tmp.dircore-site.xml中设置,默认值为/tmp/hadoop-${user.name}。您应该覆盖dfs.datanode.data.dir,使其不是/tmp,否则,在重新启动服务器时,您将丢失所有datanode数据。同样,命名节点在hdfs-site.xml中也有自己的属性。
任何访问HDFS的应用程序,是否需要了解整个群集的详细信息?
是的。Hadoop SDK使用这些XML文件来配置自己,以了解集群的详细信息。主要是Namenode地址(fs.defaultFS in core-site.xml),然后将datanodes注册到namenode,以便将来进行文件操作(您永远不会直接访问datanodes)。
应用程序是否可以将其视为另一个本地目录
不可以。您可以使用NFS Gateway,但我还没有看到这样做的好用例,除非您有必须写入NFS的遗留软件。
如果您需要SSH/SFTP文件传输(通常通过“边缘节点”/“着陆区”服务器完成),即HDFS的“外部”服务器,则其他进程会将这些文件移动到HDFS中。
可视化和理解

  • Hadoop:《权威指南》* 涵盖了这方面的内容。

另外,你的问题没有涉及到YARN,它实际上是运行Python(Mapreduce / Spark)代码的东西。参考第一点,所有带有YARN节点管理器的机器都应该运行datanode进程。

相关问题