DynamoDB EMR集成+ WARN任务计算器警告-地图任务小于1

时间:2019-06-03 08:39:55

标签: scala amazon-web-services apache-spark amazon-dynamodb amazon-emr

我正在尝试使用AWS博客中提供的解决方案将DynamoDB集成到EMR spark中。

https://aws.amazon.com/blogs/big-data/analyze-your-data-on-amazon-dynamodb-with-apache-spark

我能够按预期检索结果。但是,任务计算器始终会显示警告“计算出的并发映射任务的最大数量少于1个,请改为使用1个”,并且提取数据需要2分钟以上的时间

$ spark-shell --jars /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar

import org.apache.hadoop.io.Text;

import org.apache.hadoop.dynamodb.DynamoDBItemWritable
/* Importing DynamoDBInputFormat and DynamoDBOutputFormat */
import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat
import org.apache.hadoop.mapred.JobConf
import org.apache.hadoop.io.LongWritable

var jobConf = new JobConf(sc.hadoopConfiguration)
jobConf.set("dynamodb.servicename", "dynamodb")
jobConf.set("dynamodb.input.tableName", "customer")   // Pointing to DynamoDB table
jobConf.set("dynamodb.endpoint", "dynamodb.us-east-1.amazonaws.com")
jobConf.set("dynamodb.regionid", "us-east-1")
jobConf.set("dynamodb.throughput.read", "1")
jobConf.set("dynamodb.throughput.read.percent", "1")
jobConf.set("dynamodb.version", "2011-12-05")

jobConf.set("mapred.output.format.class", "org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat")
jobConf.set("mapred.input.format.class", "org.apache.hadoop.dynamodb.read.DynamoDBInputFormat")

var customers= sc.hadoopRDD(jobConf, classOf[DynamoDBInputFormat], classOf[Text], classOf[DynamoDBItemWritable])

cutsomers.count()

该集群有2个大小为m3.xlarge的点实例。

我不确定如何增加hadoop地图任务。

任何帮助将不胜感激。

创建了一个映射到DynamoDB表的hive表,并使用Hive Shell尝试了相同的查询。查询性能正常。

从客户那里选择* *,其中custid ='123456'-花费的时间仅为4秒

0 个答案:

没有答案