激发安全考虑

Spark security consideration

我有一些来自正常工作的额外安全注意事项。我通常使用 sbt 来构建,我会给它一些库来从 Maven 存储库中获取。但是现在,我无法使用很多外部库,而且我现在不确定我是否能够去 Maven 获取我可能需要的 Spark 库。即使我要获得外部图书馆,每个图书馆的审查过程也需要几个月的时间。有没有人遇到过类似情况?从无法使用外部库的角度来看,任何人都可以分享他们为拥有一套成功的 Spark 作业所做的工作,以便在 hadoop 集群上进行数据处理和数据科学吗?

我认为在您所公开的上下文中没有针对您的问题的标准解决方案。这取决于您对外部依赖项的依赖程度以及您真正需要的东西。我给你举个例子:解析 csv 行并构造 dataframe/datasets 或 rdd。您有很多选择:

  • 使用外部库(来自数据块或其他)
  • 依靠你的代码,手工完成,所以没有外部依赖
  • 依靠知道如何处理 csv 的 spark 更新版本

如果您有一个 hadoop 集群,那么所有 spark 运行时环境都已经包含大量将要加载的库(json 操作、网络、日志记录,仅举几例)。 Spark 作业中的大部分业务逻辑都可以用这些来完成。 我给你一些例子,说明我是如何解决外部依赖问题的,尽管我没有任何安全限制。在一种情况下,我们不得不在我们的 Spark 应用程序中使用 Spring 依赖项(因为我们想更新一些关系 tables),所以我们得到了一个包含所有 spring 依赖项的 fat jar,它们是许多。结论:白白得到了很多依赖(维护它很恐怖 :))。所以这不是一个好方法。在其他情况下,我们必须做同样的事情,但我们将依赖性保持在最低限度(最简单的事情可以 read/update 一个 table 和一个 jdbc)。结论:肥罐不大,只留真正需要的,不多也不少

Spark 已经为您提供了很多功能。知道可以做某事的外部库并不意味着 spark 不能用现有的东西来做。