有没有办法将我的 DynamoDB 导出任务分组到一个 EMR 集群上?
Posted
技术标签:
【中文标题】有没有办法将我的 DynamoDB 导出任务分组到一个 EMR 集群上?【英文标题】:Is there a way to group my DynamoDB export tasks on one EMR cluster? 【发布时间】:2017-03-20 04:20:56 【问题描述】:当我通过 DynamoDB 控制台中的导出功能设置重复备份时,它创建的任务在运行时会自动创建一个新的 EMR 集群。我的一些表需要备份,但相当小。我最终得到的是运行大量大型服务器来备份一些相对较小的表。是否有任何简单的方法可以将这些任务链接起来,以便在一个服务器组上串行或并行运行?
【问题讨论】:
【参考方案1】:是的,这是可能的。没有直接的方法,但需要在 Data-Pipeline 端进行一些额外的调整。您需要了解默认情况下 Data-Pipeline 如何实际运行您的导出作业。
当您单击 DDB 控制台上的导出按钮时,它会将您带到 Data-Pipelines 控制台以创建用于导出的管道。
填写完模板后,不用运行,你可以使用Edit in Architect
功能改变当前模板,该模板只适用于一张表。
在架构师页面上,如果您观察 Activities
部分,您会发现 EmrAcvity 使用以下参数运行 EMR STEP。此 EMR STEP 将使用您最初在模板上传递的参数运行导出作业。请注意,它还将 RunsOn
EMRclusterforBackup
资源,您可以在资源部分找到。
s3://dynamodb-emr-#myDDBRegion/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#output.directoryPath,#input.tableName,#input.readThroughputPercent
-
要使用相同的 EMR 资源在其他 DDB 表上运行导出,您只需单击
Add
创建另一个 EMRActivity 对象,然后在架构师上添加 EMRActivity。在此活动中,您可以使用与先前活动相同的RunsOn
,并且在 STEP 参数中您可以手动编辑以包含其他表名及其导出路径
喜欢
s3://dynamodb-emr-#myDDBRegion/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,s3://myexport-bucket/table2/,table2,0.9
-
您可以为多个表扩展它。
注意:这可以很容易地为多个表完成,使用 JSON 文件作为数据管道定义,编辑它以添加更多活动和参数,然后将其导出到稍后运行。
【讨论】:
以上是关于有没有办法将我的 DynamoDB 导出任务分组到一个 EMR 集群上?的主要内容,如果未能解决你的问题,请参考以下文章