[Документация Yandex Cloud](../../index.md) > [Yandex Data Processing](../index.md) > [Пошаговые инструкции](index.md) > Задания (jobs) > Задания Hive

# Управление заданиями Hive

В кластере Yandex Data Processing можно управлять [заданиями (jobs)](../concepts/jobs.md), а также получать логи их выполнения. Примеры заданий описаны в разделе [Работа с заданиями](../tutorials/job-overview.md).

## Создать задание {#create}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите на [страницу каталога](https://console.yandex.cloud).
    1. Перейдите в сервис **Yandex Data Processing**.
    1. Нажмите на имя нужного кластера и выберите вкладку **Задания**.
    1. Нажмите кнопку **Создать задание**.
    1. (Опционально) Укажите имя задания.
    1. В поле **Тип задания** выберите `Hive`.
    1. (Опционально) В поле **Настройки** укажите [свойства компонентов](../concepts/settings-list.md) в виде пары `ключ-значение`.

       Если аргумент, переменная или свойство состоит из нескольких частей, разделенных пробелом, указывайте каждую часть отдельно. При этом важно сохранить порядок объявления аргументов, переменных и свойств.
       
       Например, аргумент `-mapper mapper.py` должен быть преобразован в два аргумента `-mapper` и `mapper.py`, стоящих последовательно.

    1. (Опционально) Включите настройку **Продолжать при ошибке**.
    1. Укажите **Переменные скрипта** в виде пары `ключ-значение`.
    1. (Опционально) Укажите пути к JAR-файлам, если они используются:

        | Размещение файла                                                | Формат пути                                          |
        |-----------------------------------------------------------------|------------------------------------------------------|
        | Файловая система инстанса                                       | `file:///<путь_к_файлу>`                             |
        | Распределенная файловая система кластера                        | `hdfs:///<путь_к_файлу>`                             |
        | [Бакет Object Storage](../../storage/concepts/bucket.md) | `s3a://<имя_бакета>/<путь_к_файлу>`                  |
        | Интернет                                                        | `http://<путь_к_файлу>` или `https://<путь_к_файлу>` |
        
        Допускается использование архивов стандартных для Linux форматов: `zip`, `gz`, `xz`, `bz2` и т. д.
        
        Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе [Редактирование ACL бакета](../../storage/operations/buckets/edit-acl.md).

    1. Выберите один из типов драйвера и укажите, что использовать для запуска задания:
        * список запросов, которые необходимо выполнить;
        * путь к файлу с запросами, которые нужно выполнить.
    1. Нажмите кнопку **Создать задание**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Чтобы создать задание:

    1. Посмотрите описание команды CLI для создания заданий типа `Hive`:

        ```bash
        yc dataproc job create-hive --help
        ```

    1. Создайте задание (в примере приведены не все доступные параметры):

        ```bash
        yc dataproc job create-hive \
           --cluster-name=<имя_кластера> \
           --name=<имя_задания> \
           --query-file-uri=<URI_файла_запроса> \
           --script-variables=<список_значений>
        ```

        Где `--script-variables` — список значений переменных, разделенных запятыми.

        Пути к необходимым для выполнения задания файлам передавайте в формате:

        | Размещение файла                                                | Формат пути                                          |
        |-----------------------------------------------------------------|------------------------------------------------------|
        | Файловая система инстанса                                       | `file:///<путь_к_файлу>`                             |
        | Распределенная файловая система кластера                        | `hdfs:///<путь_к_файлу>`                             |
        | [Бакет Object Storage](../../storage/concepts/bucket.md) | `s3a://<имя_бакета>/<путь_к_файлу>`                  |
        | Интернет                                                        | `http://<путь_к_файлу>` или `https://<путь_к_файлу>` |
        
        Допускается использование архивов стандартных для Linux форматов: `zip`, `gz`, `xz`, `bz2` и т. д.
        
        Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе [Редактирование ACL бакета](../../storage/operations/buckets/edit-acl.md).

    Идентификатор и имя кластера можно получить со [списком кластеров в каталоге](cluster-list.md#list).

- API {#api}

    Воспользуйтесь методом API [create](../api-ref/Job/create.md) и передайте в запросе:

    * Идентификатор кластера в параметре `clusterId`. Его можно получить со [списком кластеров в каталоге](cluster-list.md#list).
    * Имя задания в параметре `name`.
    * Свойства задания в параметре `hiveJob`.

{% endlist %}

## Отменить задание {#cancel}

{% note info %}

Задания в статусах `ERROR`, `DONE` или `CANCELLED` отменить нельзя. Чтобы узнать статус задания, получите [список заданий](#list) в кластере.

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. Перейдите на [страницу каталога](https://console.yandex.cloud).
  1. Перейдите в сервис **Yandex Data Processing**.
  1. Нажмите на имя нужного кластера и выберите вкладку **Задания**.
  1. Нажмите на имя нужного задания.
  1. В правом верхнем углу страницы нажмите кнопку **Отменить**.
  1. В открывшемся окне выберите **Отменить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  Чтобы отменить задание, выполните команду:

  ```bash
  yc dataproc job cancel <имя_или_идентификатор_задания> \
    --cluster-name=<имя_кластера>
  ```

  Идентификатор и имя задания можно получить со [списком заданий в кластере](#list), имя кластера — со [списком кластеров в каталоге](cluster-list.md#list).

- API {#api}

  Воспользуйтесь методом API [cancel](../api-ref/Job/cancel.md) и передайте в запросе:
  * Идентификатор кластера в параметре `clusterId`.
  * Идентификатор задания в параметре `jobId`.

  Идентификатор кластера можно получить со [списком кластеров в каталоге](cluster-list.md#list), идентификатор задания — со [списком заданий в кластере](#list).

{% endlist %}

## Получить список заданий {#list}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите на [страницу каталога](https://console.yandex.cloud).
    1. Перейдите в сервис **Yandex Data Processing**.
    1. Нажмите на имя нужного кластера и выберите вкладку **Задания**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Чтобы получить список заданий, выполните команду:

    ```bash
    yc dataproc job list --cluster-name=<имя_кластера>
    ```

    Идентификатор и имя кластера можно получить со [списком кластеров в каталоге](cluster-list.md#list).

- API {#api}

    Воспользуйтесь методом API [list](../api-ref/Job/list.md) и передайте в запросе идентификатор кластера в параметре `clusterId`.

    Идентификатор кластера можно получить со [списком кластеров в каталоге](cluster-list.md#list).

{% endlist %}

## Получить общую информацию о задании {#get-info}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите на [страницу каталога](https://console.yandex.cloud).
    1. Перейдите в сервис **Yandex Data Processing**.
    1. Нажмите на имя нужного кластера и выберите вкладку **Задания**.
    1. Нажмите на имя нужного задания.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Для получения общей информации о задании выполните команду:

    ```bash
    yc dataproc job get \
       --cluster-name=<имя_кластера> \
       --name=<имя_задания>
    ```

    Идентификатор и имя кластера можно получить со [списком кластеров в каталоге](cluster-list.md#list).

- API {#api}

    Воспользуйтесь методом API [get](../api-ref/Job/get.md) и передайте в запросе:

    * Идентификатор кластера в параметре `clusterId`. Его можно получить со [списком кластеров в каталоге](cluster-list.md#list)
    * Идентификатор задания в параметре `jobId`. Его можно получить со [списком заданий в кластере](#list).

{% endlist %}

## Получить логи выполнения задания {#get-logs}

{% note info %}

Вы можете просматривать логи выполнения заданий и искать в них информацию с помощью сервиса [Yandex Cloud Logging](../../logging/index.md). Подробнее в разделе [Работа с логами](logging.md).

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите на [страницу каталога](https://console.yandex.cloud).
    1. Перейдите в сервис **Yandex Data Processing**.
    1. Нажмите на имя нужного кластера и выберите вкладку **Задания**.
    1. Нажмите на имя нужного задания.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Чтобы получить логи выполнения задания, выполните команду:

    ```bash
    yc dataproc job log \
       --cluster-name=<имя_кластера> \
       --name=<имя_задания>
    ```

    Идентификатор и имя кластера можно получить со [списком кластеров в каталоге](cluster-list.md#list).

- API {#api}

    Воспользуйтесь методом API [listLog](../api-ref/Job/listLog.md) и передайте в запросе:

    * Идентификатор кластера в параметре `clusterId`. Его можно получить со [списком кластеров в каталоге](cluster-list.md#list).
    * Идентификатор задания в параметре `jobId`. Его можно получить со [списком заданий в кластере](#list).

{% endlist %}