来自Elasticsearch for Hadoop documentation:
只要有可能,elasticsearch-hadoop就会共享Elasticsearch 使用Hadoop集群信息以促进数据协同定位。在 实践,这意味着每当从Elasticsearch读取数据时, 源节点IP传递到Hadoop以优化任务执行。 如果需要/可能共址,托管Elasticsearch和 同一机架内的Hadoop集群将提供重要的网络 节省。
这是否意味着理想情况下,Elasticsearch节点应该与Hadoop集群上的每个DataNode共存,或者我误读了这个?
答案 0 :(得分:0)
您可能会发现Elasticsearch和Hortonworks的联合演示在回答这个问题时非常有用:
http://www.slideshare.net/hortonworks/hortonworks-elastic-searchfinal
您将注意到,在幻灯片33和34上,它们显示了多个体系结构 - 一个ES节点位于Hadoop节点上,另一个节点位于Hadoop节点上。第一个选项显然为您提供了最佳的数据共存位置,这对于管理Hadoop性能非常重要。第二种方法允许您分别调整每个方法并独立缩放它们。
我不知道你可以说一种方法比另一方更好,因为有明显的权衡。在同一节点上运行可以明显地最小化数据访问延迟,但代价是失去隔离并且能够单独调整每个集群。