问题描述
我有10台使用akka流进行数据提取的提取机。 我有一个由50个节点组成的Hadoop集群,并使用Spark Streaming运行管道。 Hadoop集群使用10台计算机生成的数据来生成报告。 我可以利用这10台计算机的机架感知能力,而无需将它们添加到Hadoop集群中吗?
当我说机架感知时,我的意思是说如果这些机器与Hadoop数据节点位于同一机架中,那么使用机架感知,我希望每个摄取机器将数据上传到它最近的数据节点,而不是随机方式,以便我将会减少网络流量。
请告诉我是否可能。
解决方法
如果我正确理解了您的设置,这应该会自动发生。根据{{3}}:
在通常情况下,当复制因子为3时, HDFS 放置策略是在以下情况下将一个副本放置在本地计算机上: writer位于数据节点上,否则位于同一节点中的随机datanode上 像作者一样,另一个节点上的另一个副本 (远程)机架,最后一个机架位于同一远程服务器的不同节点上 机架。
(突出显示的是与您的情况有关的情况,如果您的摄取节点不是集群数据节点。)