如何将 AWS DynamoDB 表导出到 S3 存储桶?
Posted
技术标签:
【中文标题】如何将 AWS DynamoDB 表导出到 S3 存储桶?【英文标题】:How to export an AWS DynamoDB table to an S3 Bucket? 【发布时间】:2020-08-29 12:54:41 【问题描述】:我有一个 DynamoDB 表,它有 150 万条记录/2GB。如何将其导出到 S3?
执行此操作的 AWS 数据管道方法适用于一个小表。但是我在将 150 万条记录表导出到我的 S3 时遇到了问题。
在我最初的试用中,管道作业耗时 1 小时,但失败了
java.lang.OutOfMemoryError: 超出 GC 开销限制
我按照this link 向 EMR 集群内的实例提供了一个 hadoop-env 配置对象,从而增加了 namenode 堆大小
增加堆大小后,我的下一次作业运行尝试在 1 小时后失败,并出现另一个错误,如随附的屏幕截图所示。我不知道该怎么做才能完全解决这个问题。
同时检查 EMR 集群中实例的 AWS Cloudwatch 图。核心节点一直保持 100% 的 CPU 使用率。
EMR 集群实例类型(主节点和核心节点)为 m3.2xlarge。
【问题讨论】:
这可能是一个很长的尝试,但它是否适用于较新的实例类型,例如 m5。 m3 是传统的 您可以使用 dynamodb emr 连接器定义一个 hive 表并运行从 dynamodb 导入数据并将其导出到 s3 的 spark 作业 【参考方案1】:问题在于地图任务没有有效运行。核心节点达到 100% 的 CPU 使用率。我将集群实例类型升级为可用的计算 C 系列之一,导出工作没有问题。
【讨论】:
以上是关于如何将 AWS DynamoDB 表导出到 S3 存储桶?的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Datapipeline 将 DynamoDB 导出到 S3 数据