使用Apache Spark多次插入表中

GKV*_*GKV 4 hadoop phoenix bigdata apache-spark

我正在研究一个项目,我坚持以下方案.

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

我有另外两个表:table1和table2

所有表(table1,table2和superMerge)具有相同的结构.

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

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

Rap*_*oth 5

这里的问题是这两个工作不能相互通信,不知道对方在做什么.一个相对简单的解决方案是实现基于文件的基本"锁定"系统:

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

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