apache-spark - 自动将 S3 与 Hive 元存储同步
问题描述
我正在使用 EMR 和 Spark/Hive 来管理 S3 中的一些镶木地板文件。当使用 spark 脚本编辑/删除(由于 GDPR)某些信息时,EMRFS 会不同步。
使用emrfs sync s3://path/
我注意到一些文件是红色的(仅限清单)。这不应该自动同步,还是在某个时间结束时同步?为了解决这个问题,我需要手动运行emrfs sync s3://path/
.
解决方案
如果您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>")
推荐阅读
- mongodb - mongoose的Model.updateOne返回值是什么意思?
- python - 有没有办法将函数调用传递给内部对象?
- python - 如何在 Python 中同一类对象的 2 个实例中触发方法?
- javascript - Await 不使用 firebase 批处理功能等待
- flutter - Flutter:当 InkWell() 的子元素是容器时如何修复 Tap 效果
- javascript - 创建钩子时出错:“ReferenceError:未定义回声”
- python - 将 HuggingFace Trainer 与 Ray Tune 一起使用时“无法腌制 _thread.RLock 对象”
- wordpress - 如何通过flutter访问http本地woocommerce api localhost
- azure - 如何更改 Azure DSVM 虚拟机上的默认启动文件夹 jupyter hub
- openssl - 为 ARM64 构建 Zeek 失败 CMake 错误 Openssl