首页 > 解决方案 > 自动将 S3 与 Hive 元存储同步

问题描述

我正在使用 EMR 和 Spark/Hive 来管理 S3 中的一些镶木地板文件。当使用 spark 脚本编辑/删除(由于 GDPR)某些信息时,EMRFS 会不同步。

使用emrfs sync s3://path/我注意到一些文件是红色的(仅限清单)。这不应该自动同步,还是在某个时间结束时同步?为了解决这个问题,我需要手动运行emrfs sync s3://path/.

标签: apache-sparkamazon-s3hiveamazon-emr

解决方案


如果您aws-s3-client用于放置或删除对象,则 EMRFS 将不知道该事务。

方法 1: 您需要在操作中使用emrfs jar。确保版本与您的集群相同。

这样 emrfs 将保持同步。

方法 2: 或者,如果您有一些指向该 s3 位置的配置单元表,您也可以使用 spark 读写方法。这样,您根本不必关心 emrfs。

// Read from hive table
sparkSession.read().table("<table-name>")
// Write into hive table
df.write().mode(SaveMode.Overwrite).insertInto("<table-name>")

推荐阅读