Облачная платформаAdvanced

Запуск MapReduce Job

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Вы можете отправлять собственные программы в MRS для их выполнения и получения результатов. В этом разделе описывается, как отправить MapReduce job в консоли управления MRS. MapReduce jobs используются для отправки JAR‑программ с целью быстрой параллельной обработки огромных объёмов данных и создания распределённой среды обработки и выполнения данных.

Если функции управления заданиями и файлами не поддерживаются на странице сведений о кластере, отправляйте задания в фоновом режиме.

Требования

Вы загрузили пакеты программ и файлы данных, необходимые для выполнения заданий, в OBS или HDFS.

Прежде чем загружать пакеты программ и файлы данных в OBS, необходимо создать OBS agency и привязать её к кластеру MRS. Подробности см. Configuring a Storage-Compute Decoupled Cluster (Agency).

Отправка задания через графический интерфейс

  1. Войдите в консоль MRS.
  2. На странице Active Clusters выберите работающий кластер и нажмите его имя, чтобы перейти на страницу сведений о кластере.
  3. Если для кластера включена аутентификация Kerberos, выполните следующие действия. Если аутентификация Kerberos для кластера не включена, пропустите этот шаг.

    В области Basic Information на странице Dashboard нажмите Synchronize справа от IAM User Sync для синхронизации IAM‑пользователей. Подробности см. Synchronizing IAM Users to MRS.

    Note
    • Если вы отправляете задание впервые, сначала необходимо синхронизировать IAM‑пользователя. Подождите 5 минут, затем отправьте задание.
    • Когда политика группы пользователей, к которой принадлежит IAM‑пользователь, меняется с MRS ReadOnlyAccess на MRS CommonOperations, MRS FullAccess или MRS Administrator, подождите 5 минут, пока новая политика не вступит в силу после завершения синхронизации, поскольку кэш SSSD (System Security Services Daemon) узлов кластера требует времени для обновления. Затем отправьте задание. В противном случае задание может не быть отправлено.
    • Когда политика группы пользователей, к которой принадлежит IAM‑пользователь, меняется с MRS CommonOperations, MRS FullAccess или MRS Administrator на MRS ReadOnlyAccess, подождите 5 минут, пока новая политика не вступит в силу после завершения синхронизации, поскольку кэш SSSD узлов кластера требует времени для обновления.

  4. Нажмите Jobs tab.
  5. Нажмите Create. Отображается страница Create Job.

    Note

    Если имя пользователя IAM содержит пробелы (например, admin 01), задание не может быть создано.

  6. В Type выберите MapReduce. Настройте остальные сведения о задании.

    Table 1 Информация о конфигурации задания

    Parameter

    Description

    Name

    Имя задания. Оно содержит от 1 до 64 символов. Допускаются только буквы, цифры, дефисы (-) и подчёркивания (_).

    NOTE:

    Рекомендуется задавать разные имена для разных заданий.

    Program Path

    Путь к пакету программы, который будет выполнен. Должны быть соблюдены следующие требования:

    • Содержит не более 1 023 символов, исключая специальные символы, такие как ;|&><'$. Значение параметра не может быть пустым или состоять только из пробелов.
    • Путь к исполняемой программе может храниться в HDFS или OBS. Путь зависит от используемой файловой системы.
      • OBS: Путь должен начинаться с obs://. Пример: obs://wordcount/program/xxx.jar
      • HDFS: Путь должен начинаться с /user. Для получения подробной информации о том, как импортировать данные в HDFS, см. Importing Data.
    • Для SparkScript и HiveScript путь должен заканчиваться на .sql. Для MapReduce путь должен заканчиваться на .jar. Для Flink и SparkSubmit путь должен заканчиваться на .jar или .py. Расширения .sql, .jar и .py регистронезависимы.

    Параметры

    (Optional) Это ключевой параметр для выполнения программы. Несколько параметров разделяются пробелом.

    Метод конфигурации: Program class name Data input path Data output path

    • Program class name: Указывается функцией в вашей программе. MRS отвечает только за передачу параметров.
    • Data input path: Нажмите HDFS или OBS, чтобы выбрать путь или вручную ввести правильный путь.
    • Data output path: Укажите каталог, которого не существует.

      Параметр может содержать не более 150 000 символов. Он не может содержать специальные символы ;|&gt;&lt;'$, но может оставаться пустым.

      ВНИМАНИЕ:

      При вводе параметра, содержащего конфиденциальную информацию (например, пароль входа), можно добавить символ собаки (@) перед именем параметра, чтобы зашифровать значение параметра. Это предотвращает сохранение конфиденциальных данных в открытом виде. При просмотре информации о задаче в консоли MRS конфиденциальная информация отображается как *.

      Например:

      username=testuser @password=User password

    Service Parameter

    (Optional) Используется для изменения параметров сервиса для задачи. Изменение параметра применяется только к текущей задаче. Чтобы изменение вступило в силу постоянно для кластера, следуйте инструкциям в Configuring Service Parameters.

    Чтобы добавить несколько параметров, нажмите справа. Чтобы удалить параметр, нажмите Delete справа.

    Table 2 перечисляет общие параметры конфигурации сервиса.

    Справочник команд

    Команда отправляется в фоновый режим для выполнения при отправке задания.

    Table 2 Service Parameter параметры

    Параметр

    Описание

    Пример значения

    fs.obs.access.key

    Идентификатор ключа для доступа к OBS.

    -

    fs.obs.secret.key

    Ключ, соответствующий идентификатору ключа для доступа к OBS.

    -

  7. Подтвердите информацию о конфигурации задания и нажмите OK.

    После создания задания вы можете управлять им.

Отправка задания в фоновом режиме

Путь установки клиента по умолчанию для MRS 3.x и более новых версий — /opt/Bigdata/client, а для версий ранее MRS 3.x — /opt/client. Настройте путь в соответствии с требованиями сайта.

  1. Войдите в консоль MRS.
  2. На странице Active Clusters выберите работающий кластер и нажмите его имя, чтобы перейти на страницу сведений о кластере.
  3. На странице вкладки Nodes нажмите имя узла Master, чтобы перейти в консоль управления ECS.
  4. Нажмите Remote Login в правом верхнем углу страницы.
  5. Введите имя пользователя и пароль узла Master, как указано в подсказке. Имя пользователя — root , а пароль — тот, который был установлен при создании кластера.
  6. Выполните следующую команду для инициализации переменных окружения:

    source /opt/Bigdata/client/bigdata_env

  7. Если аутентификация Kerberos включена для текущего кластера, выполните следующую команду для аутентификации пользователя. Если аутентификация Kerberos отключена для текущего кластера, пропустите этот шаг.

    kinit MRS cluster user

    Пример: kinit admin

  8. Выполните следующую команду для копирования программы из файловой системы OBS на узел Master в кластере:

    hadoop fs -Dfs.obs.access.key=AK -Dfs.obs.secret.key=SK -copyToLocal source_path.jar target_path.jar

    Пример: hadoop fs -Dfs.obs.access.key=XXXX -Dfs.obs.secret.key=XXXX -copyToLocal "obs://mrs-word/program/hadoop-mapreduce-examples-XXX.jar" "/home/omm/hadoop-mapreduce-examples-XXX.jar"

    Note
    • Команды, содержащие пароли аутентификации, представляют риск безопасности. Отключите запись истории команд перед выполнением таких команд, чтобы предотвратить утечку информации.
    • Вы можете войти в OBS Console, используя AK/SK. Чтобы получить информацию AK/SK, нажмите имя пользователя в правом верхнем углу консоли управления и выберите My Credentials > Access Keys.

  9. Запустите следующую команду, чтобы отправить задачу wordcount. Если данные необходимо читать из OBS или выводить в OBS, необходимо добавить параметры AK/SK.

    source /opt/Bigdata/client/bigdata_env;hadoop jar execute_jar wordcount input_path output_path

    Пример: source /opt/Bigdata/client/bigdata_env;hadoop jar /home/omm/hadoop-mapreduce-examples-XXX.jar wordcount -Dfs.obs.access.key=XXXX -Dfs.obs.secret.key=XXXX "obs://mrs-word/input/*" "obs://mrs-word/output/"

    В предыдущей команде input_path указывает путь для хранения входных файлов задачи в OBS. output_path указывает путь для хранения выходных файлов задачи в OBS и должен быть установлен в каталог, который не существует.