2016-12-07 4 views
1

Я следующую структуру файла, если я действительно ДФ -h в любом из рабов или ведущего устройства«Не осталось на устройстве пространства», Спарк Работа Отменено: Нет правильное решение еще в StackOverflow

Filesystem   Size Used Avail Use% Mounted on 
    /dev/xvda1   7.9G 4.4G 3.5G 57%/
    tmpfs     7.4G 4.0K 7.4G 1% /dev/shm 
    /dev/xvdb    37G 3.3G 32G 10% /mnt 
    /dev/xvdf    37G 2.0G 34G 6% /mnt2 
    /dev/xvdv    500G 33M 500G 1% /vol0 

Мой spark-env.sh выглядит следующим образом

export SPARK_WORKER_DIR="/vol0" 
export SPARK_WORKER_CORES=2 
export SPARK_WORKER_OPTS="-Dspark.local.dir=/vol0" 
export SPARK_LOCAL_DIRS="/vol0/" 

Но все же я не подвожу «не осталось на устройстве пространства» ошибка и работа получает прекращается во время сохранения файлов.

У меня есть один набор данных, имеющий по 200 файлов по 1 ГБ каждый и другой набор данных, имеющий по 200 файлов каждый из 45 МБ. Я присоединяюсь к ним и сохраняю в новый файл в s3.

DataFrame dataframe1= sqlContext.read().format("json").json(outputGrowth).coalesce(50); 
     dataframe1.registerTempTable("dataframe1"); 



     DataFrame dataframe2 = sqlContext.read().format("json").json(pdiPath); 
     dataframe2.registerTempTable("dataframe2"); 

     //Joining two tables 
     String query = "join dataframe1 and dataframe2"; 
     DataFrame resultPDI = sqlContext.sql(query); 
     dataPDI.unpersist(); 
     growthData.unpersist(); 
     resultPDI.write().mode("overwrite").json(outputPDI); 

Итак, как я могу установить мою искру для хранения данных в/vol0 вместо другого файла/MNT/искру.

Я пробовал разные решения из stackoverflow, а некоторые блоги не работают для меня.

Может ли кто-нибудь помочь мне избавиться от этой проблемы. Я использую 10 устройств m1.large на сервере Aws.

+0

Существуют и другие конфигурации, которые могут вызывать такие проблемы. Например, места размещения журналов, локальные диски HDFS и т. Д. Все по умолчанию указывают на/tmp. Я бы начал их расследовать. –

+0

Спасибо @AssafMendelson за ваше предложение. каковы могут быть эти параметры? можешь мне помочь . и можете ли вы предложить мне, какие типы экземпляров я должен использовать? –

+0

@AssafMendelson. где находится файл, который может быть настроен в настройке привязки журнала? –

ответ

1

Вы можете создать cimply создать символическую ссылку на/мнт/искрой к/val0, если вы используете Ubuntu, как показано ниже

ln -s /val0 /mnt/spark 

так и с помощью symblink вы можете обратиться/val0 с/мнт/искру. Для получения дополнительной информации перейдите по ссылке http://ubuntuhak.blogspot.in/2013/04/symbolic-links-in-ubuntu.html

+0

но как это сделать во всех подчиненных, вручную? или мы можем установить это в любом файле конфигурации? –

+0

yess вам нужно вручную создать симблок на всех рабочих узлах, но вы также можете попробовать с этой конфигурацией spark.local.dir spark использует это для своей работы с царапинами, и по умолчанию его/tmp может быть папкой ur/tmp не хватает места –

+0

Я думаю, что это невозможно сделать вручную, поскольку данные будут расти, рабы будут более сотни. –