Spark сохранит избыточные данные на диск по умолчанию, если размер входного RDD превышает объем памяти - PullRequest
0 голосов
/ 11 июня 2019

У меня есть входной файл размером 260 ГБ, и мой объем памяти искрового кластера составляет 140 ГБ, при запуске задания на искривление избыточные данные 120 сохраняются на диск по умолчанию, или я должен использовать некоторые уровни хранения для его указания.

Я не пробовал никаких решений для решения этой проблемы.

 def main(args: Array[String]){
 val conf:SparkConf = new SparkConf().setAppName("optimize_1").setMaster("local")
     val sc:SparkContext = new SparkContext(conf)

 val myRDD = sc.parallelize( List(("1", "abc", "Request"), ("1", "cba", "Response"), ("2", "def", "Request"), ("2", "fed", "Response"), ("3", "ghi", "Request"), ("3", "ihg", "Response")) )

 val myRDD_1 = sc.parallelize( List(("1", "abc"), ("1", "cba"), ("2", "def"), ("2", "fed"), ("3", "ghi"), ("3", "ihg")) )


 myRDD_1.map(x=>x).groupBy(_._1).take(10).foreach(println)

 myRDD_1.groupByKey().foreach(println)  }

Ниже приведен ожидаемый и рабочий вывод для небольших данных:

(2,CompactBuffer(def, fed))

(3,CompactBuffer(ghi, ihg))

(1,CompactBuffer(abc, cba))

Но при его применениив больших масштабах я получаю следующую ошибку:

"Dspark.ui.port = 0 '-Dspark.yarn.app.container.log.dir = / hadoop / yarn / log / application_1555417914353_0069/ container_e05_1555417914353_0069_02_000009 -XX: OnOutOfMemoryError = 'kill% p' org.apache.spark.executor.CoarseGrainedExecutorBackend - искра -driver-url: // CoarseGrainedScheduler - IDOSP0-DOS080 - DOSSP330 - DOSSP3SD330 - DOSSP3 - DOSSP3 - DOC330 - DOSSP3-app-id application_1555417914353_0069 - файл пути к классу пользователя: $ PWD / app .jar 1> / hadoop / yarn / log / application_1555417914353_0069 / container_e05_1555417914353_0069_02_000009 / stdout 2> / hadoop / yarn / log / application_1555417914353_0069 / container_e05_1555417914353_0069_02_000009 / stderr ""

ОШИБКА YarnClusterScheduler: потерянный исполнитель 17 на DOSSPOCVM2: DOSSPOCVM200: нетронут: DOSSPOC2M2: 55_00_002: не указан_0_02_502_3_50_00_02_002: не указан_0_02: 55_00_002: не найденСтатус выхода: -100.Диагностика: контейнер освобожден на потерянном узле

Пожалуйста, предложите способ решения этой проблемы

...