AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

从EMR直接将数据写入DynamoDB

0

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

profile picture
전문가
질문됨 일 년 전22회 조회
1개 답변
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
전문가
답변함 일 년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인