生产环境中的 Hive 与 Spark

Posted

技术标签:

【中文标题】生产环境中的 Hive 与 Spark【英文标题】:Hive vs Spark in production environments 【发布时间】:2018-06-05 04:01:31 【问题描述】:

我正在寻找 Hive 与 Spark 在实际生产环境中的用例。这两种技术在生产环境中是否共存?如果是,通过 HiveQL 进行什么样的转换是好的,通过 SparkSQL 处理什么情况?

【问题讨论】:

Impala 或 Presto 经常被用来代替 Hive(Presto 更容易安装) 【参考方案1】:

根据我们使用的经验:

    用于 ETL 的 Spark 用于分析处理的 Hive。

虽然要考虑一件事 - 是 Hive 下方的内容。例如,Tez 上的 Hive 将比 spark 用于分析更快。但如果 Hive 将使用 MapReduce - 最好使用 Spark 进行分析。

【讨论】:

Hive中一般会做什么样的转换。我来自数据仓库背景,我们通常通过基于 GUI 的工具进行非常冗长和繁琐的 ETL 工作。是否可以/建议通过 Hive 做这么多繁琐的 ETL 工作。开发工作会不会太长,因为许多查询需要手写而不是 GUI 工具来处理它? 通常我们会做:数据注入、数据验证/清理、增量加载、标准化、使用 Spark 过滤。在 Hive 中,我们执行为业务用户和可视化提供数据的查询。根据我的经验 - 对于有经验的员工来说,GUI 工具总是比 IDE/手写慢。无论如何,没有人禁止使用 GUI 工具来构建查询,然后在 Spark 或 SQL 代码中实现它们。

以上是关于生产环境中的 Hive 与 Spark的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL 高级编程之 HadoopHiveSpark 环境搭建

return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask.

Spark Streaming性能优化: 如何在生产环境下应对流数据峰值巨变

生产环境spark sql实用tips

Loki生产环境集群方案

企业中的软件开发——开发环境测试环境镜像环境与生产环境的区别