DynamoDB EMR Integration + ПРЕДУПРЕЖДЕНИЕ Калькулятор задач Предупреждение - Карта задач меньше 1 - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь интегрировать DynamoDB в EMR spark, используя решение, представленное в блоге AWS.

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 spot instance.

Я не уверен, как увеличить задачи карты hadoop.

Любая помощь будет оценена.

Создание таблицы кустовкоторый сопоставляется с таблицей DynamoDB, и попытался выполнить тот же запрос, используя оболочку Hive.Производительность запроса нормальная.

выберите * у клиента, где custid = '123456' - время, затрачиваемое только на 4 секунды

...