apache-spark - Spark 作为执行引擎还是 Spark 作为应用程序?
问题描述
哪个选项更好用,spark 作为 hive 上的执行引擎还是使用 spark SQL 访问 hive 表?为什么?
解决方案
这里有几个假设:
- 选择 SQL 的原因是为了保持用户友好,例如,如果您有业务用户试图访问数据。
- 考虑使用 Hive,因为它提供了类似 SQL 的接口和数据持久性
如果这是真的,Spark-SQL 可能是更好的前进方式。它更好地集成在 Spark 中,并且作为 Spark 的一个组成部分,它将提供更多功能(一个示例是结构化流)。您仍将获得 Spark 的用户友好性和类似 SQL 的界面,因此您将获得全部好处。但是您只需要从 Spark 的角度来管理您的系统。Hive 安装和管理仍将存在,但从单一角度来看。
将 Hive 与 Spark 一起用作执行引擎将使您受到限制,具体取决于 Hive 的库在将您的 HQL 转换为 Spark 方面的能力。他们可能做得很好,但您仍然会失去 Spark SQL 的高级功能。与 Spark SQL 相比,新功能可能需要更长的时间才能集成到 Hive 中。
此外,由于 Hive 向最终用户公开,一些高级用户或数据工程团队可能希望访问 Spark。这将导致您管理两个工具。在这种情况下,与仅使用 Spark-SQL 相比,系统管理可能会变得更加繁琐,因为 Spark SQL 有可能同时为非技术用户和高级用户提供服务,即使高级用户使用 pyspark、spark-shell 或更多,它们仍将被集成在同一个工具集中。
推荐阅读
- python - [:] 有什么作用?
- github - 当用户更新他/她的个人资料时,github如何设法在任何地方反映用户详细信息
- javascript - 为什么这个变量不会增加?
- ios - How to pass variable data in view controllers embedded in a navigation stack?
- excel - 将所有 IF 公式 (TRUE) 转换为除包含 IF 公式 (FALSE) 的行之外的值
- python - Python AttributeError:“NoneType”对象没有使用 BeautifulSoup 的“查找全部”属性
- sql - PostgreSQL 可以在 ORDER BY 中使用 FOR LOOP 吗?
- markdown - R Markdown / Bookdown:如何自定义数字书章节?
- .net - 如何在 Azure Pipeline 期间创建包含 build.* 变量的文件
- sql - 在 Postgresql 中将日期转换为 YYYY-MM-DDThh:mm:ss.sssZ 格式