Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

从EMR直接将数据写入DynamoDB

0

【以下的问题经过翻译处理】 一位客户研究了将数据直接从 EMR 写入 DynamoDB 的方法,遇到一个问题:为了运行 DynamoDBStorageHandler,他们必须更改 hive 引擎以使用 MR 而不是 TEZ。虽然我们可以做到这一点,但这确实意味着我们需要运行两个 EMR 集群。我们能否确认他们的理解是正确的,他们认为就像他们在测试TEZ时他们看到了失败但在使用MR时却没有看到失败。我们能否找出是否有更好的方法来执行此操作而不需要 2 个 EMR 集群。

profile picture
EXPERTE
gefragt vor einem Jahr22 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 emr-dynamodb-connector (https://github.com/awslabs/emr-dynamodb-connector) 的 DynamoDBStorageHandler 在 EMR 使用 Hive/Spark/MR 与 DynamoDB 表进行交互时被使用。它根据 dynamodb.throughput.write.percent 配置以及其他参数确定一个 maxParallelTasks 属性。maxParallelTasks 属性是 MR 引擎的一个函数(因为在实现连接器时,默认情况下是在 Hive on MR 上),因此如果选择 Tez/Spark 引擎用于 Hive,连接器的写入和功能不会改变,但是 IOPS 将不再受到控制/估算,写入速率主要取决于输入大小和 EMR 集群容量。这可能导致对表进行限流(不确定是否这些是您指的错误)

只要Hive on MR可用,目前建议在写入时使用MR引擎并在运行时设置它(在与DynamoDB交互的任何Hive脚本之前添加“set hive.execution.engine=mr;”)。这不需要2个EMR集群,直到客户有一天开始使用EMR的更高版本(现在所有EMR版本都有MR 引擎,因此如果继续使用这些版本,则不会出现问题)时,遇到EMR 中的 Hive 不再包含 MR 引擎。

PS:即使是Hive on MR与DynamoDB进行交互,EMR集群容量也可能是决定写入速度的次要因素,但最大值始终会根据设置的dynamodb.throughput.write.percent配置来进行限制。

profile picture
EXPERTE
beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen