@hadoopusers

Страница 9 из 182
Yan?
29.05.2017
15:43:19
Да

Aleksander
29.05.2017
15:43:37
Есть вариант ограничить rdd функцией sample

Yan?
29.05.2017
15:43:38


Aleksander
29.05.2017
15:43:59
ну mkstring - это затратная походу операция

Google
Aleksander
29.05.2017
15:44:12
тебе бы ее на кластере выполнять, нужен хип огого

на первом этапе, где он рдд грузит, добавь вызов .sample(0.1, false)

он возьмет 10 процентов рдд

Yan?
29.05.2017
15:46:21
осталось найти место первого этапа



я так понимаю после этой строки

Grigory
29.05.2017
15:47:39
Тяжело сказать где, рдд ленивы же.

Aleksander
29.05.2017
15:48:28
А ну да, тогда неудивительно почему падает =)

я так понимаю после этой строки
Да добавь к ней то, что я написал

Yan?
29.05.2017
15:50:34
ratings_raw_RDD = self.sc.textFile(ratings_file_path).sample(0.1, false)

правильно?

Aleksander
29.05.2017
15:53:11
Вроде да, я наизусть не помню порядок аргументов

Google
Aleksander
29.05.2017
15:53:15
К сожалению

Yan?
29.05.2017
15:54:13
вопрос

в start server есть —master spark://169.254.206.2:7077

в нее можно запихать локалхост?



А потом уже python server.py

Aleksander
29.05.2017
15:56:57
new SparkConf() .setAppName("app") .setMaster("local[*]")

я вот так мастер настраиваю на локалхост

Yan?
29.05.2017
15:57:41
Хм

Aleksander
29.05.2017
15:57:56
не знаю насчет этого скриптика конечно, синтаксис может отличаться

Yan?
29.05.2017
15:59:07
Вопрос в скрипте валяется ~/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master spark://169.254.206.2:7077 --total-executor-cores 14 --executor-memory 8g server.py Соотвественно, раз в сервере.py я не вижу ничего, чтобы вызывало это скрипт, то я должен его сам поднять

бля как же сложно быть тупым в новой технологии

Aleksander
29.05.2017
16:02:55
Да не парься, это только сложно развернуть. Всегда так с начала

Yan?
29.05.2017
16:12:57
Да с радостью. Курсовую через два дня сдавать. А я спарк поднять не могу

:)

Aleksander
29.05.2017
16:14:06
Интересные курсовые пошли

Jury
29.05.2017
16:15:24
кхм...

Yan?
29.05.2017
16:15:44
Товарищ криптографическую нейросетт делал

Я бы до ума довел если бы не работа

Timur
29.05.2017
16:17:59
Коллеги, кто-нить в этом году сдавал CCA 175?

Google
KrivdaTheTriewe
29.05.2017
17:28:45
Коллеги, кто-нить в этом году сдавал CCA 175?
а можно подробнее об этом экзамене ?

Sea
30.05.2017
01:42:46
Загляни к нам на канал. У нас ты найдешь кучу схем по заработку в сети и в реале, а так же годную мотивацию и инсайды по криптовалюте. @zagsuda

Yan?
30.05.2017
04:28:37




Заменил я значит в стартовом скрипте master на локал ~/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master local[*] --total-executor-cores 14 --executor-memory 8g server.py и стало все работать, но не долго все равно падает с ошибкой по памяти

Подсказали мне отключить лимит на память, как я понял делается это следующим образом ~/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master local[*] --total-executor-cores 14 --executor-memory 6g --conf spark.memory.offHeap.enabled=true --conf spark.memory.offHeap.size=1111111111111111110 server.py

Aleksander
30.05.2017
08:07:10
Добавить оффхипа на максимум ? Прикольно!

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

Yan?
30.05.2017
08:10:39
Я вообще правильно понял "Отключить лимит на память" и правильно ли сделал?

Aleksander
30.05.2017
08:12:41
Ну смотри. То что ты настроил, говорит, что ты будешь брать память не из зарезервированного хипа Java процесса, а из доступной памяти системы(которая свободна от сборок мусора джавы) и предполагаю, если у тебя вся память кончится, то тоже будет не очень.

По идее в таких случаях скидывают часть данных на диск и у спарка были такие опции

Но, возможно для твоей курсовой - ничего страшного не произойдёт

Yan?
30.05.2017
08:15:03
Так дело в том что я посмотрел свободную оперативку в систему

и из 7 гигов свободен 1гигабайт

Aleksander
30.05.2017
08:16:42
Ну тогда это тебе даст +1гиг и своп.

По идее

Yan?
30.05.2017
08:17:08
Даже после добавления памяти он все равно падает

с offHeap ошибкой

Aleksander
30.05.2017
08:17:57
Ну, про что я и говорю. Нужно найти опцию юзать диск при нехватке памяти

Google
Aleksander
30.05.2017
08:33:31
Нет

Эта штука делит хип твой на пропорции для спарка и для твоего кода

Ой - перепутал с другой опцией

Yan?
30.05.2017
08:35:20
я вот прочитал что tasks may split to disk often

https://spark.apache.org/docs/latest/configuration.html#memory-management

Aleksander
30.05.2017
08:35:46
Sometimes, you will get an OutOfMemoryError not because your RDDs don’t fit in memory, but because the working set of one of your tasks, such as one of the reduce tasks in groupByKey, was too large. Spark’s shuffle operations (sortByKey, groupByKey, reduceByKey, join, etc) build a hash table within each task to perform the grouping, which can often be large. The simplest fix here is to increase the level of parallelism, so that each task’s input set is smaller. Spark can efficiently support tasks as short as 200 ms, because it reuses one executor JVM across many tasks and it has a low task launching cost, so you can safely increase the level of parallelism to more than the number of cores in your clusters.

В доке написано

Yan?
30.05.2017
08:36:34
Ага

Значит нужно level of parallelism поднять

Aleksander
30.05.2017
08:36:57
Это может и не помочь

Yan?
30.05.2017
08:37:03
время попробовать

Aleksander
30.05.2017
08:37:22
На мой взгляд лучше тебе ограничить набор данных. Помнишь опцию sample?

Попробуй поиграться с ее значением

Например 0.01 - 1% датасета

Вообще спарк обычно запускает на тоннах памяти(n-ом количестве машин) и неудивительно, что твоих 8 не хватает

У меня на моей машине 64 Гб иногда выжирает

Но для тестов использую кластер, и там уже оч много памяти

Или вот . Идея лучше

У тебя вся проблема в том, что при получении данных на драйвер - у тебя падает с ООМ. Есть решение, в коде разделить rdd на мелкие, и последовательно их получать, выводить данные

Yan?
30.05.2017
08:46:22
Ну я сейчас сделал sample и запустил

Google
Aleksander
30.05.2017
08:46:25
Тогда у тебя в драйвером процессе не сразу загрузится весь хип, а только часть. А то, что мы там шаманим с памятью спарка - это все фигня, он по идее по дефолту юзает диск и не упадет

Не падает ?

Yan?
30.05.2017
08:46:44
и упал

Aleksander
30.05.2017
08:46:54
0.001

Yan?
30.05.2017
08:47:18


Aleksander
30.05.2017
08:47:40
Ставь 0.01

Yan?
30.05.2017
08:53:25
Все еще падает

Да что за

Aleksander
30.05.2017
08:53:55
А какого размера файл то? Который он грузит

Yan?
30.05.2017
08:54:00
сейчас

Aleksander
30.05.2017
08:54:30
Поиграй со значением семпла попробуй 0.001, 0.0001

Yan?
30.05.2017
08:55:21
633 метра

самый большое

Aleksander
30.05.2017
08:57:00
А скинь код, что-ли

Yan?
30.05.2017
08:57:25
секунду

Aleksander
30.05.2017
08:58:14
Помедитирую на стектрейс и код

Yan?
30.05.2017
08:58:52
https://github.com/jadianes/spark-movie-lens

Страница 9 из 182