hadoop客户端能否利用机架感知的优势?

hadoop客户端能否利用机架感知的优势?,hadoop,akka-stream,Hadoop,Akka Stream,我有10台使用akka流进行数据摄取的摄取机。 我有一个50节点的Hadoop集群,并使用Spark Streaming运行管道。Hadoop集群使用10台机器生成的数据生成报告。 我可以利用这10台机器的机架感知功能,而不将它们添加为Hadoop集群的一部分吗 当我说机架感知时,我的意思是,如果这些机器与Hadoop数据节点位于同一机架中,那么使用机架感知,我希望每个摄取机器将数据上传到最近的数据节点,而不是随机方式,这样我的网络流量会更少 如果可能的话,请告诉我。如果我正确理解了您的设置,这

我有10台使用akka流进行数据摄取的摄取机。 我有一个50节点的Hadoop集群,并使用Spark Streaming运行管道。Hadoop集群使用10台机器生成的数据生成报告。 我可以利用这10台机器的机架感知功能,而不将它们添加为Hadoop集群的一部分吗

当我说机架感知时,我的意思是,如果这些机器与Hadoop数据节点位于同一机架中,那么使用机架感知,我希望每个摄取机器将数据上传到最近的数据节点,而不是随机方式,这样我的网络流量会更少


如果可能的话,请告诉我。

如果我正确理解了您的设置,这将自动发生。根据:

对于常见情况,当复制因子为3时,HDFS 放置策略是在本地计算机上放置一个副本,如果 writer位于datanode上,否则位于同一数据库中的随机datanode上 机架与writer的机架相同,另一个副本位于不同位置的节点上 (远程)机架,最后一个位于同一远程中的不同节点上 机架


(如果您的摄取节点不是群集数据节点,则突出显示与您的案例相关的内容。)

感谢您的快速回复reply@mazaneicha,您知道客户端计算机是否需要成为namenode和snamenode上的topology_mappings.data文件的一部分吗。namenode和snamenode用于构建拓扑层次结构的文件。在我的用例中,hdfs客户机可以成功创建目录并上载文件,但是在文件上载过程中,它不会以机架感知的方式上载文件。在hdfs客户机上,我更新了机架和主机信息,包括topology_mapping.data文件中的客户机,以及namenode和sname节点。nn和sn无法到达客户端。这取决于Hadoop配置,但如果它使用外部拓扑脚本+conf文件,则需要在nn上。谢谢你@mazaneicha。我有一个后续问题。我注意到这种行为,即使我的块复制器设置为3,在从客户端上载期间,有时nn分配2个块,有时分配3个块。分配3个数据块时,其中一个来自同一机架数据节点,但分配2个数据块时,没有一个来自同一机架数据节点。这是意料之中的吗?这值得一个单独的问题。请包括您的hadoop版本/发行版,如何配置(核心站点、hdfs站点),以及如何检查块分配。