Как включить честный планировщик в PySpark? - PullRequest
0 голосов
/ 10 ноября 2018

Согласно документам

Без какого-либо вмешательства вновь отправленные задания попадают в пул по умолчанию, но пулы заданий можно установить, добавив локальное свойство spark.scheduler.pool к SparkContext в потоке, который их отправляет

И

Свойства пула можно установить, создав XML-файл, аналогичный conf / fairscheduler.xml.template, и либо поместив файл с именем fairscheduler.xml в classpath, либо установив свойство spark.scheduler.allocation.file в своем файле. SparkConf

Так что я могу сделать первую часть достаточно легко:

__sp_conf = SparkConf()
__sp_conf.set("spark.scheduler.mode", "FAIR")
sc = SparkContext(conf=__sp_conf)
sc.setLocalProperty("spark.scheduler.pool", "default")

Но как мне получить XML-файл с именем fairscheduler.xml на путь к классам? Кроме того, classpath чего? Просто водитель? Каждый исполнитель?

Я пытался использовать функцию addFile() на SparkContext, но это действительно для возможности доступа к файлам с ваших заданий, я не думаю, что это что-то добавляет к пути к классам.

Моя другая мысль заключалась в изменении переменной среды PYSPARK_SUBMIT_ARGS, чтобы попытаться возиться с командой, отправленной на spark-submit, но я не уверен, что есть способ изменить путь к классу, используя этот метод. Кроме того, это только изменит путь к классу драйвера, а не каждого исполнителя, который, я не уверен, сработает или нет.


Чтобы было ясно, если я не предоставлю файл fairscheduler.xml, Spark жалуется

WARN FairSchedulableBuilder: 66 - Файл конфигурации Fair Scheduler не найден, поэтому задания будут запланированы в порядке FIFO. Чтобы использовать честное планирование, настройте пулы в файле fairscheduler.xml или задайте для spark.scheduler.allocation.file файл, содержащий конфигурацию.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Следующие шаги мы предпримем:

  • Запустите простое приложение Spark и просмотрите сервер истории Spark UI.
  • Создайте новый пул планировщика Spark FAIR во внешнем XML-файле.
  • Установите spark.scheduler.pool на пул, созданный во внешнем XML-файле.
  • Обновите код, чтобы использовать потоки для запуска использования пулов FAIR и перестройки.
  • Повторно разверните Spark Application с помощью:
    • spark.scheduler.mode переменная конфигурации для FAIR.
    • spark.scheduler.allocation.file конфигурация
  • Запустите и проверьте Spark UI History Server.

ССЫЛКА

Spark Continuous Application с FAIR Scheduler презентация https://www.youtube.com/watch?v=oXwOQKXo9VE

0 голосов
/ 10 ноября 2018

Вопрос: Но как мне получить XML-файл с именем fairscheduler.xml на Путь к классам? Кроме того, classpath чего? Просто водитель? Каждый исполнитель?

Ниже приведены пункты, особенно # 4, которые могут помочь в этом случае в зависимости от режима, в котором вы отправляете работу.

Здесь я пытаюсь перечислить все ...

  1. Для использования Fair Scheduler сначала назначьте соответствующий класс планировщика в yarn-site.xml:

    <property>
      <name>yarn.resourcemanager.scheduler.class</name> 
    

    org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler

  2. ваш способ __sp_conf.set или просто ниже способ может работать

    sudo vim /etc/spark/conf/spark-defaults.conf
    
    spark.master yarn
    
    ...
    spark.yarn.dist.files
    /etc/spark/conf/hive-site.xml,/home/hadoop/fairscheduler.xml
    
    spark.scheduler.mode FAIR
    spark.scheduler.allocation.file fairscheduler.xml
    
  3. Скопируйте пасту fairscheduler.xml в /home/Hadoop/fairscheduler.xml

    <?xml version="1.0"?>
    <!--Licensed to the Apache Software Foundation
    (ASF) under one or morecontributor license agreements. See the NOTICE
    file distributed withthis work for additional information regarding
    copyright ownership.The ASF licenses this file to You under the Apache
    License, Version 2.0(the "License"); you may not use this file except
    in compliance with the License. You may obtain a copy of the License at
    

    http://www.apache.org/licenses/LICENSE-2.0 Если не требуется применимого права или согласовано в письменной форме; Лицензия распространяется на условиях «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЯ ЛЮБОГО ВИДА, явные или подразумеваемые. конкретный язык, регулирующий разрешения и ограничения в соответствии с Лицензия .-->

    <allocations>
        <pool name="sparkmodule1">
            <schedulingMode>FAIR</schedulingMode>
            <weight>1</weight>
            <minShare>2</minShare>
        </pool>
        <pool name="sparkmodule2">
            <schedulingMode>FAIR</schedulingMode>
            <weight>1</weight>
            <minShare>2</minShare>
        </pool>
    
    <pool name="test">
        <schedulingMode>FIFO</schedulingMode>
        <weight>1</weight>
        <minShare>2</minShare>
    </pool>
    <pool name="default">
        <schedulingMode>FAIR</schedulingMode>
        <weight>3</weight>
        <minShare>3</minShare>
    </pool>
    </allocations>
    

    где sparkmodule1 ... - модули, для которых вы хотите создать выделенный пул ресурсов.

    Примечание : вам не нужно упоминать пул по умолчанию, например sc.setLocalProperty("spark.scheduler.pool", "default"), если в файле fairscheduler.xml нет соответствующего пула, он естественным образом войдет в пул по умолчанию.

  4. Пример отправки Spark, как показано ниже, когда вы находитесь в режиме кластера

    spark-submit --name "jobname" --class --master yarn --deploy-mode cluster --files /etc/spark/conf/hive-site.xml,/home/hadoop/fairscheduler.xml

Примечание. В режиме клиента, если мы хотим отправить искровое задание, отличное от Главная каталог с режимом клиента создайте символическую ссылку из файла fairscheduler.xml для указать каталог, который вы хотите указать. например, папка скриптов, где вы выполняете спарк-отправку из ln –s /home/Hadoop/fairscheduler.xml fairscheduler.xml

Примечание: Если вы не хотите копировать файл fairscheduler.xml в / home / hadoop папку, которую вы можете создать fairscheduler.xml в /etc/spark/conf/fairscheduler.xml и вы можете дать sym ссылку на каталог, в котором вы выполняете spark, отправьте, как описано выше.

Ссылки: Пример планировщика Spark Fair

Для перекрестной проверки:

На вкладке Environment отображаются значения для различных переменных среды и конфигурации, включая Java ™, Spark и системные свойства. Путь к файлу справедливого размещения будет здесь.

как ... enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...