【发布时间】:2016-12-24 04:04:09
【问题描述】:
我必须在独立集群 (M+3Workers) 上运行 spark Job。
我的工作由“按交易详细信息更新客户数量”定义我:e。我将获得一个批处理/流文件/记录(比如 100 笔交易)来处理,我的 spark 作业“如果找到交易,则为客户 id-转到 mysql-Table 并将该客户的 Transaction_count 增加 1”。
目前它工作正常,但我担心的是:: 假设我的每个 Worker 都有同一客户的记录(当然在他们的共享 RDD 部分中)并尝试更新该客户的 Trx_count mysql 表同时进行。
我会在那个表中遇到锁吗??
或者 Spark 以其他方式处理它(没有明确的想法),所以它直到日期都不会发生,将来也可能永远不会发生??
需要了解 spark 是如何完成更新工作(计划)的?
【问题讨论】:
-
当我们获取交易详情时,很有可能多个工作人员尝试更新同一客户行(可能/可能-不同时间)。因此,最好在 MySQL 中为更新添加行级锁定。
标签: mysql apache-spark pyspark