AWS Разделение файла EMR Spark - PullRequest
0 голосов
/ 04 марта 2020

У меня Apache Spark задание запущено на AWS EMR service. Он читает текстовый файл с доменами из корзины S3 и выполняет некоторую обработку. Входной файл для доменов 10 КБ имеет размер около 250 КБ.

При запуске задания создаются только 2 задачи. И независимо от того, какой размер кластера я использую, он не запускает их параллельно.

Пример кода для чтения входного файла:

val conf = new SparkConf().setAppName(appName)
val sc = new SparkContext(conf)
val spark = SparkSession.builder.appName(appName).getOrCreate

val domains = sc.textFile("s3://bucket/file.txt")

Я обнаружил, что есть опция fs.s3.block.size, которая контролирует разделение чтения файла (и значение по умолчанию больше, чем мой входной файл). Но я не мог найти место, где его можно применить. Пробовал следующую конфигурацию:

[
  {
    "classification": "emrfs-site", 
    "properties": {"fs.s3.block.size":"20480"}, 
    "configurations": []
  }
]

Но это не имело никакого эффекта.

Какую конфигурацию я могу использовать для увеличения задач Spark для моего входного файла?

AWS EMR выпуск 5.29.0

Пример входного файла:

domain1
domain2
domain3
...
...