hadoop - 使用 Apache Spark 多次插入到表中

标签 hadoop apache-spark bigdata apache-phoenix

我正在做一个项目,但我遇到了以下情况。

我有一张表:superMerge(id, name, salary)

我还有另外两个表:table1 和 table2

所有表(table1、table2 和 superMerge)都具有相同的结构。

现在,我的挑战是从表 1 和表 2 插入/更新 superMerge 表。 table1 每 10 分钟更新一次,table2 每 20 分钟更新一次,因此在时间 t=20mins 我有 2 个作业试图更新同一个表(在这种情况下为 superMerge。)

我想了解如何使用 Spark 或任何其他 hadoop 应用程序将并行插入/更新/合并到 superMerge 表中。

最佳答案

这里的问题是两个job无法相互通信,不知道对方在做什么。一个相对简单的解决方案是实现一个基本的基于文​​件的“锁定”系统:

  • 每个作业都会在 HDFS 上的特定文件夹中创建一个(空)文件,指示更新/插入正在进行中,并在作业完成后删除该文件

  • 现在,每个作业都必须在开始更新/插入之前检查这样的文件是否存在。如果存在,作业必须等到文件消失。

关于hadoop - 使用 Apache Spark 多次插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46956325/

相关文章:

postgresql - Postgres 的大表建议

Java 客户端拒绝连接到远程服务器

hadoop - 在cloudera演示cdh3u4上运行mapreduce作业(航空公司数据示例)

python-3.x - PySpark - 根据条件填充特定行

apache-spark - 从 spark 读取使用 CTE(With 子句)创建的 Hive View

java - 尝试初始化集群以使用 DistCp 时,Hadoop API 抛出错误

bash - awk 前的令人困惑的反斜杠,这是什么意思?

java - 在 MapReduce 中,如何将数组列表作为值从映射器发送到 reducer

unit-testing - Spark 单元测试

python - python pandas 分块文件中数百万键上的 grouby 问题