Java中的AWS DynamoDB和MapReduce

Mar*_*ark 7 java mapreduce amazon-web-services elastic-map-reduce amazon-dynamodb

我有一个巨大的DynamoDB表,我想分析它来聚合存储在其属性中的数据.然后,聚合数据应由Java应用程序处理.虽然我理解MapReduce背后的基本概念,但我以前从未使用过它.

在我的情况,让我们说,我有一个customerIdorderNumbers属性在每个DynamoDB项目,我可以有多个项目为同一客户.喜欢:

customerId: 1, orderNumbers: 2
customerId: 1, orderNumbers: 6
customerId: 2, orderNumbers: -1
Run Code Online (Sandbox Code Playgroud)

基本上我想总结每个customerId的orderNumbers,然后用聚合在Java中执行一些操作.

AWS Elastic MapReduce可能对我有帮助,但我不明白如何将自定义JAR与DynamoDB连接.我的自定义JAR可能需要公开a mapreduce函数,在哪里可以找到正确的接口来实现?

另外我对文档感到有点困惑,似乎我应该先运行自定义JAR之前将数据导出到S3.它是否正确?

谢谢

Che*_*rel 3

注意:我还没有构建有效的 EMR,只是阅读一下。

首先,将 Amazon EMR 与 Amazon DynamoDB 集成的先决条件

您可以直接使用 DynamoDB:在 Amazon DynamoDB 中导出、导入和查询数据的 Hive 命令示例,如您所见,您可以通过这种方式执行“类似 SQL”的查询。

如果您对 Hadoop 的了解为零,您可能应该阅读一些介绍材料,例如:什么是 Hadoop

本教程是另一本不错的读物《 Using Amazon Elastic MapReduce with DynamoDB》

对于您的自定义 JAR 应用程序,您需要将其上传到 S3。使用本指南:如何使用自定义 JAR 创建作业流程

我希望这能帮助您入门。