Я запустил кластер 10 node с ec2- script в автономном режиме для Spark. Я получаю доступ к данным в ведрах s3 изнутри оболочки PySpark, но когда я выполняю трансормирования на RDD, используется только один node. Например, нижеследующее будет считывать данные из CommonCorpus:
bucket = ("s3n://@aws-publicdatasets/common-crawl/crawl-data/CC-MAIN-2014-23/"
"/segments/1404776400583.60/warc/CC-MAIN-20140707234000-00000-ip-10"
"-180-212-248.ec2.internal.warc.gz")
data = sc.textFile(bucket)
data.count()
Когда я запускаю это, только один из моих 10 подчиненных обрабатывает данные. Я знаю это, потому что только один подчиненный (213) имеет любые журналы активности при просмотре с веб-консоли Spark. Когда я просматриваю активность в Ganglia, этот же node (213) является единственным подчиненным с использованием всплеска в использовании памяти, когда действие было запущено.
Кроме того, у меня есть такая же производительность, когда я запускаю тот же script с кластером ec2 только одного подчиненного устройства. Я использую Spark 1.1.0, и любая помощь или совет приветствуются.