Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Data Proc
  • Сценарии использования
    • Настройка сети для кластеров Data Proc
    • Использование Apache Hive
    • Запуск Spark-приложений
    • Запуск приложений с удаленного хоста
    • Копирование файлов из Yandex Object Storage
  • Пошаговые инструкции
    • Все инструкции
    • Создание кластера
    • Подключение к кластеру
    • Изменение подкластера
    • Управление подкластерами
    • Удаление кластера
  • Концепции
    • Обзор Data Proc
    • Классы хостов
    • Версии Hadoop и компонентов
    • Интерфейсы и порты компонентов
    • Веб-интерфейсы компонентов
    • Автоматическое масштабирование
    • Декомиссия подкластеров и хостов
    • Сеть в Data Proc
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • ClusterService
      • JobService
      • ResourcePresetService
      • SubclusterService
      • OperationService
    • REST
      • Обзор
      • Cluster
        • Обзор
        • create
        • delete
        • get
        • list
        • listHosts
        • listOperations
        • start
        • stop
        • update
      • Job
        • Обзор
        • create
        • get
        • list
      • ResourcePreset
        • Обзор
        • get
        • list
      • Subcluster
        • Обзор
        • create
        • delete
        • get
        • list
        • update
  • Вопросы и ответы
  1. Сценарии использования
  2. Использование Apache Hive

Запуск заданий Apache Hive

  • Запуск задания с помощью CLI Yandex.Cloud
  • Запуск задания с помощью Hive CLI

Hive — инструмент доступа к хранилищам данных в экосистеме Hadoop. Позволяет работать с данными в разных форматах и СУБД, используя SQL-подобный язык запросов. Преимущественно используется для работы с данными в HDFS, HBase, S3-совместимых хранилищах и реляционных СУБД.

Вы можете запускать задания Hive как с помощью CLI Yandex.Cloud, так и непосредственно на сервере с помощью Hive CLI.

Запуск задания с помощью CLI Yandex.Cloud

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

Запуск заданий с помощью CLI Yandex.Cloud происходит посредством агента Data Proc, установленного на мастер-хосте кластера. Параметры заданий передаются агенту через Data Proc API.

Исполняемый файл и его зависимости должны находиться в хранилище, к которому есть доступ у сервисного аккаунта кластера Data Proc. У самого запускаемого приложения должен быть доступ к хранилищам, в которых хранятся исходный набор данных и результаты запуска.

Результат расчета сохраняется в бакет Yandex Object Storage вместе с сервисным выводом.

SQL-запрос для Hive можно передать двумя способами:

  • В команде на запуск задачи:

    yc dataproc job create-hive --cluster-id <ID кластера> --name <имя задачи> --query-list "SELECT Month, COUNT(*)  FROM flights GROUP BY Month;"
    
  • В объекте Object Storage, который доступен на чтение сервисному аккаунту кластера Data Proc:

    yc dataproc job create-hive --cluster-id <ID кластера> --name <имя задачи> --query-file-uri "s3a://<ваш бакет>/hive-query.sql"
    

Результат исполнения запросов, а также дополнительную диагностическую информацию можно найти в бакете Object Storage, который был указан при создании кластера: s3://<ваш бакет>/dataproc/clusters/<ID кластера>/jobs/<ID задачи>/.

ID задачи есть в выводе команды запуска задания YC CLI и есть в ответе API на запуск задания.

Запуск задания с помощью Hive CLI

Чтобы запустить командную оболочку (CLI) для Apache Hive, подключитесь к хосту-мастеру по SSH и выполните команду hive.

После этого проверьте работоспособность Hive — выполните команду select 1;. Корректный результат выглядит так:

hive> select 1;
OK
1
Time taken: 0.077 seconds, Fetched: 1 row(s)
  1. Создайте внешнюю таблицу (external table) для данных примера в формате Parquet. Таблица будет содержать список перелетов между городами США в 2018-м году. Выполните следующий запрос с помощью Hive CLI:

    CREATE EXTERNAL TABLE flights (Year bigint, Month bigint, FlightDate string, Flight_Number_Reporting_Airline bigint, OriginAirportID bigint, DestAirportID bigint) STORED AS PARQUET LOCATION 's3a://yc-mdb-examples/dataproc/example01/set01';
    
  2. Проверьте список таблиц:

    show tables;
    
  3. Список таблиц должен выглядеть так:

    OK
    flights
    Time taken: 0.043 seconds, Fetched: 1 row(s)
    
  4. Запросите количество перелетов по месяцам:

    SELECT Month, COUNT(*) FROM flights GROUP BY Month;
    
  5. Пример результата такого запроса:

    Query ID = root_20200119195338_28049b67-4de9-4568-a4c4-3bbe500b78a1
    Total jobs = 1
    Launching Job 1 out of 1
    Status: Running (Executing on YARN cluster with App id application_1579251575762_0013)
    
    ----------------------------------------------------------------------------------------------
            VERTICES      MODE        STATUS  TOTAL  COMPLETED  RUNNING  PENDING  FAILED  KILLED
    ----------------------------------------------------------------------------------------------
    Map 1 .......... container     SUCCEEDED      6          6        0        0       0       0
    Reducer 2 ...... container     SUCCEEDED      1          1        0        0       0       0
    ----------------------------------------------------------------------------------------------
    VERTICES: 02/02  [==========================>>] 100%  ELAPSED TIME: 11.52 s
    ----------------------------------------------------------------------------------------------
    OK
    1       570118
    2       520731
    3       611987
    4       596046
    5       616529
    6       626193
    7       645299
    8       644673
    9       585749
    10      616101
    11      586178
    12      593842
    Time taken: 12.137 seconds, Fetched: 12 row(s)
    
В этой статье:
  • Запуск задания с помощью CLI Yandex.Cloud
  • Запуск задания с помощью Hive CLI
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»