EMR dyanmodb导出失败,因为表容量已按需设置

时间:2019-01-07 18:03:07

标签: amazon-dynamodb

将dynamodb表的容量更改为按需后,导出dynamodb表的数据管道作业因此错误而失败。

Exception in thread "main" java.lang.RuntimeException: Read throughput should not be less than 1. Read throughput percent: 0.0
at org.apache.hadoop.dynamodb.read.AbstractDynamoDBInputFormat.getSplits(AbstractDynamoDBInputFormat.java:51)
at org.apache.hadoop.mapreduce.JobSubmitter.writeOldSplits(JobSubmitter.java:520)
at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:512)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:394)

任何解决此问题的方法?

谢谢

-gsu

2 个答案:

答案 0 :(得分:0)

我会联系AWS支持进行确认,但是我被告知EMR DynamoDB连接器尚未正式支持使用按需供应的表。因此,作为解决方法,您很有可能需要将表切换回预置的容量。

编辑:截至2019年1月23日,EMR connector for DynamoDB supports tables set to on-demand billing

答案 1 :(得分:0)

如果问题没有解决,那么您可能需要在 3 个地方进行更改:

  1. 您需要使用 emr release emr-5.26.0emr-5.30.0
  2. org.apache.hadoop.dynamodb.tools.DynamoDbExport 替换为 org.apache.hadoop.dynamodb.tools.DynamoDBExport。注意外壳的变化。与 DynamoDBImport 类似。
  3. 如果您使用的是 emr-dynamodb-connector,那么您需要克隆其最新版本,通过 emr-ddb-tools 生成 mvn clean install jar,然后将生成的 jar 用于 emr-dynamodb-tools,这将当前是版本 4 或更高版本,并在您的参数中替换它。这些应该可以解决问题。

此外,如果您使用 emr-dynamodb-tools,目前 emr 版本 31 或更高版本存在一个问题,这会显示与某些 joda-time 框架相关的错误。我会限制使用 emr-5.26.0emr-5.30.0 之间的任何版本。