gpt4 book ai didi

apache-spark - Apache Zeppelin + Spark 的按需用户集群?

转载 作者:可可西里 更新时间:2023-11-01 14:48:16 28 4
gpt4 key购买 nike

我们使用 cloudera 来部署一个 zeppelin-spark-yarn-hdfs 集群。现在,只有一个 zeppelin 和 spark 实例,所有 spark notebook 的执行都会影响到每个用户。例如,如果我们停止用户笔记本中的 spark 上下文,它会影响所有其他用户的笔记本。我已经看到 zeppelin 中有一个选项可以隔离解释器,但是有没有办法根据需要为每个用户提供自己的“集群”?也许使用 Docker 并使用 zeppelin 和 spark 为每个用户构建一个图像,并将他们的资源限制为用户集群提供的资源?我完全不知道如何实现它,或者它是否可能,但我的理想场景是像数据 block 那样的方法。在那里你可以拥有自己的集群,所有资源都与其他用户隔离。

最佳答案

有几种方法可以解决。

我假设您无论如何都在运行集群,因此任何按需资源都仅限于静态资源,但由 YARN 以动态方式分配。您应该首先查看 YARN 队列和 YARN 授权。通过这种方式,您可以根据组织的公平标准有效地管理资源可用性。

在 Zeppelin 端,确保还启用身份验证 - 这会传递到 YARN 和 HDFS。有效隔离用户。如果您有不同的要求,并希望确保口译员不会发生冲突,您可以

  • 使用隔离模式。这最容易设置,但维护起来很棘手。
  • 为每个团队/组织单位设置一名口译员。这会产生少量开销,并且您可以在一个 Zeppelin 实例中管理所有 OU,但这可能是集中管理不同需求的最佳方式。
  • 使用可部署的 Zeppelin(例如 Dockerized)将 OU 彼此隔离,但您还必须维护每个 OU 的配置并在部署时将它们注入(inject)到镜像中,或者管理一大堆自定义镜像
  • 只需让 OU 管理他们自己的 Zeppelin,并使用集群访问权限来限制他们在集群端实际可以做的事情。由于没有“一般”Zeppelin 用户,此建议取决于用户的技术技巧。维护它应该不会太困难,而且灵 active 可能使它值得。显然,预计会有更高的支持/协助工作量。

哪种解决方案最适合您,在很大程度上取决于组织构成、技术技能和用户的各种要求。要记住的一件事是依赖管理——一旦集群访问得到解决,这可能是最大的问题。一旦越来越多的人开始使用 Zeppelin 并共享同一个解释器设置,你就越有可能遇到依赖冲突,这会毁了每个人的一天。我个人会推荐我的第二个和第四个建议,但我看到第三个建议也在大型企业中使用——如果多样性不是太高,它就可以工作。

不会做的一件事是为每个用户 创建一个 Zeppelin 实例。 Zeppelin 主要用于共享 信息,因此 Zeppelin 的一个实例应该在希望从彼此的工作中受益的一组用户之间共享。我认为您可以使用网络安装的笔记本目录来重新合并笔记本,但可能会出现写入争用问题,即意外覆盖/恢复以前的写入。

关于apache-spark - Apache Zeppelin + Spark 的按需用户集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45583607/

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