Apache Zeppelin 是否足够稳定以用于生产

Is Apache Zeppelin stable enough to be used in Production

我正在使用 AWS EMR 集群。我一直在尝试使用 Spark Drivers 和 Apache Zeppelin Rest API 来完成 运行 作业。我在 Zeppelin 有 运行 数百份临时工作,没有任何顾虑。基于这个事实,我正在考虑在生产中使用 Zeppelin Rest API。将使用 Rest API 提交作业。

有没有人在 Zeppelin 的生产环境中遇到过稳定性问题?

我在多用户环境(+/- 15 个用户)的生产环境中有一个 zeppelin 运行ning,它不是很稳定。为了让它更稳定,我 运行 zeppelin 在它自己的节点上,不再在主节点上。

总之,我发现了以下问题:

  • 在Zeppelin 0.7.2之前的版本中创建了很多僵尸进程,导致大量使用后出现内存问题。
  • 用户库可以破坏 Zeppelin,0.7.0 之前的版本就是这种情况。例如。 Jackson 库使 Zeppelin 无法与 spark 解释器通信。在 0.7.0 及更高版本中,此问题已得到缓解。
  • 用户多时会出现随机卡顿现象。解决此问题的唯一方法是重新启动服务。 (所有版本)
  • 有时,当用户启动他的解释器而本地存储库为空时,zeppelin 不会下载解释器配置中指定的所有库。然后它不会再次下载它们,缓解这种情况的唯一方法是删除解释器本地存储库的内容。 (所有版本)
  • 有时笔记本上的更改不会保存,这会导致用户丢失代码。
  • 在版本 0.6.0 中,spark 解释器共享一个上下文,导致用户相互覆盖变量。
  • 问题很难调试,日志记录还不是很好。一些错误似乎会破坏日志记录,有时 运行 在调试模式下使用解释器可以解决问题。

因此,我不会将其置于人们依赖它的生产环境中。但对于测试和数据发现来说,它会很好。 Zeppelin 显然仍处于测试阶段。

也不要 运行 它在主节点上,而是设置你自己的实例并让它远程连接到集群。这使它更加稳定。把它放在一个结实的节点上并在一夜之间重新启动它。

我遇到的大多数错误已经存在于 Jira 上,开发人员正在努力使事情变得更好。每个版本的稳定性都变得越来越好,我看到每个版本的维护负载都在下降,所以它肯定有潜力。

我现在使用齐柏林飞艇已经一年多了。当您刚开始时,它可以让您快速上手,但它不是生产用例的理想选择,尤其是当用户超过 10 个时,它取决于您的集群资源。这些是我对齐柏林飞艇的总体担忧。

  1. 默认情况下,您一次不能拥有超过一份工作 运行,您 需要更改配置才能实现。
  2. 如果您要从 s3 或外部环境加载额外的库,您只能在开始时这样做,否则您将拥有 重新启动飞艇。
  3. spark 上下文是预先创建的,您可以更改的设置很少。
  4. 当您的输出很大时,编辑器本身无法很好地调整大小。

我将继续使用 jupyter 来处理我的用例,这在我的初步评估中非常强大。

截至 2019 年 2 月底,我的回答是:
简单明了。 Zeppelin 不断崩溃、挂起和无响应,笔记本往往由于大小错误而无法加载,与 Jupyter 相比执行速度非常慢,加上第三方显示引擎集成的许多限制(尽管为此付出了很多努力)。

我在一个大小适中、容量适中的集群上遇到了这些问题,只有一个用户。我永远不会建议它成为一种生产工具。至少不像今天这样。除非您手头有管理员能够定期重启整个系统并跟踪 down/fix 错误并负责集成。

我们搬回了 Jupyter,从第一天开始,一切都顺利地开箱即用,经过数周的努力来稳定 Zeppelin。