将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
答案 0 :(得分:0)
我会联系AWS支持进行确认,但是我被告知EMR DynamoDB连接器尚未正式支持使用按需供应的表。因此,作为解决方法,您很有可能需要将表切换回预置的容量。
编辑:截至2019年1月23日,EMR connector for DynamoDB supports tables set to on-demand billing。
答案 1 :(得分:0)
如果问题没有解决,那么您可能需要在 3 个地方进行更改:
emr-5.26.0
到 emr-5.30.0
。org.apache.hadoop.dynamodb.tools.DynamoDbExport
替换为 org.apache.hadoop.dynamodb.tools.DynamoDBExport
。注意外壳的变化。与 DynamoDBImport 类似。emr-ddb-tools
生成 mvn clean install
jar,然后将生成的 jar 用于 emr-dynamodb-tools
,这将当前是版本 4 或更高版本,并在您的参数中替换它。这些应该可以解决问题。此外,如果您使用 emr-dynamodb-tools
,目前 emr 版本 31 或更高版本存在一个问题,这会显示与某些 joda-time
框架相关的错误。我会限制使用 emr-5.26.0
到 emr-5.30.0
之间的任何版本。