gpt4 book ai didi

apache-spark - 通过 Coarse Grain Mesos 集群上的 Kafka 接收器进行 Spark Streaming

转载 作者:行者123 更新时间:2023-12-04 05:19:38 24 4
gpt4 key购买 nike

我一直在制作 Spark Streaming 的原型(prototype) 1.6.1在 Mesos 上使用 kafka 接收器 0.28以粗粒度模式运行的集群。

我有 6 个 mesos 奴隶,每个奴隶都有 64GB RAM and 16 Cores .
我的 kafka 主题有 3 个分区。
我的目标是总共启动 3 个执行器(每个在不同的 mesos 从站上),每个执行器都有一个从一个 kafka 分区读取的 kafka 接收器。

当我使用 spark.cores.max 启动我的 spark 应用程序时设置为 24 和 spark.executor.memory设置为 8GB,我得到了两个执行器——一个从属设备上有 16 个内核,另一个从属设备上有 8 个内核。

我希望在三个不同的从站上获得 3 个执行器,每个执行器有 8 个核心。 mesos 通过资源预留/隔离、约束等是否可以做到这一点?

现在唯一对我有用的解决方法是将每个 mesos 从节点缩小到最多只有 8 个内核。出于性能原因,我不想在细粒度模式下使用 mesos,而且它的支持很快就会消失。

最佳答案

Mesosphere 为 Spark 贡献了以下补丁:https://github.com/apache/spark/commit/80cb963ad963e26c3a7f8388bdd4ffd5e99aad1a .这一改进将在 Spark 2.0 中实现。 Mesosphere 向后移植了 Spark 1.6.1 的这一改进和其他改进,并使其在 DC/OS (http://dcos.io) 中可用。

此补丁在类(class)增益模式中引入了一个新的“spark.executor.cores”配置变量。当设置“spark.executor.cores”配置变量时,执行器将根据指定的核心数进行调整。

如果一个报价到达 (spark.executor.memory, spark.executor.cores) 的倍数,将在该报价上启动多个执行器。这意味着可能有多个但独立的 Spark 执行器在同一个 Mesos 代理节点上运行。

(目前)没有办法将执行者分散到 N 个 Mesos 代理中。我们简要讨论了添加在 N 个 Mesos 代理之间传播 Spark 执行程序的能力,但得出的结论是,它在提高可用性方面并没有什么好处。

您能否帮助我们了解您在 3 个 Mesos 代理中传播 Spark 执行器的动机?我们可能没有考虑所有可能的用例和优势。

基思

关于apache-spark - 通过 Coarse Grain Mesos 集群上的 Kafka 接收器进行 Spark Streaming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com