apache-spark - 如何避免 Lambda 架构中的代码冗余?

标签 apache-spark hadoop spark-streaming

我们有一个正在运行的批处理,如下所述

  • Hive SQL 用于日常批处理。
  • 正在从文件或 RDMBS 中提取数据
  • 数据在 Raw --> Staging --> Mart 中摄取,从 Staging 到 Mart 是所有业务转换,而从 raw 到 staging 只是数据的清理和格式化。

现在,作为获取实时或接近实时数据的一部分,我正在评估 Lambda 架构,这是什么计划?

  • 所有源系统都将登陆 Kafka。
  • 相同的批处理系统将使用 Kafka 主题。
  • 新的 Spark 应用程序将使用 kafka 主题进行流式处理。
  • 服务层将创建 View ,这些 View 将结合来自流式处理和批处理的聚合数据以进行实时(近实时)处理。

问题是,逻辑将在 HiveQL(批处理)和 Spark(流处理)中重复。有什么办法可以避免或尽量减少这种情况?

最佳答案

您可以使用 Spark SQL 和 Spark Structured Streaming 构建处理阶段:https://spark.apache.org/docs/2.2.0/structured-streaming-programming-guide.html .根据您的需要,可能存在一些不兼容性。但我会尝试使用 Dataset[_] api 构建 Spark Aggregations + Transformations,然后尝试以批处理和流式传输两种方式生成。

关于apache-spark - 如何避免 Lambda 架构中的代码冗余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52395663/

相关文章:

java - 使用 Eclipse 和 CHD4 的 JDBC 连接到 Hive 时出错

Amazon EMR 上的 Hadoop Webhdfs 删除选项失败

apache-spark - Spark Streaming 在两个流之间共享状态

scala - Spark 流上下文在停止时挂起

hadoop - 如何在多节点 Hadoop 集群上设置 Spark?

python - Spark MLlib 决策树 : Probability of labels by features?

hadoop - hive 圈-哪个执行引擎支持? Spark ,先生,泰兹

java - 使用 Spark 流从数据库流式读取

hadoop - SparkContext无法读取存储在HDFS中的文件,但是命令 “hadoop fs -text”可以正确读取它

apache-spark - Spark - 错误 : Could not find or load main class org. apache.spark.launcher.Main