На этом уроке вы научитесь подключаться к кластеру Hadoop и работать с ним на примере выполнения запросов с помощью Hive.
Подключение к кластеру
Подключимся к управляющему хосту главного подкластера. Поскольку хостам кластера Hadoop не назначается публичный IP-адрес, для подключения к ним нужна виртуальная машина, расположенная в той же сети Yandex.Cloud.Выберите машину, которую создавали раньше, или создайте новую. Подключитесь к ней по SSH. Вы уже делали это, когда изучали виртуальные машины.Подключитесь с этой машины к хосту главного подкластера также с помощью SSH. Для этого на машине должен быть SSH-ключ, который вы указали при создании кластера Data Proc. Вы можете скопировать ключ на виртуальную машину или подключаться к ней с запущенным SSH-агентом.Запустите SSH-агент:
Скопировать кодeval `ssh-agent -s`
Добавьте ключ в список доступных агенту:
Скопировать кодssh-add ~/.ssh/*example-key*
Откройте SSH-соединение с хостом Data Proc для пользователя root, например:
Скопировать кодssh root@*rc1b-dataproc-m-fh4y4nur0i0uqqkz.mdb.yandexcloud.net*
Пошаговые инструкции по различным способам подключения к кластеру Data Proc приведены в документации.Вы должны получить примерно такой результат.
Проверим, что команды Hadoop выполняются, например:
Скопировать кодhadoop version
Результат выполнения этой команды выглядит так:
Запуск заданий Apache Hive
Как мы уже говорили ранее, Hive — это платформа для хранения данных и управления ими в экосистеме Hadoop. Она используется для доступа к большим датасетам, сохранённым в распределённом хранилище.Hive позволяет работать с данными различного формата (csv, tsv, Parquet, ORC, Avro и другими), подключаться к БД и взаимодействовать с ней с помощью SQL-подобного языка запросов. Hive используется преимущественно для работы с данными в HDFS, HBase, S3-совместимых хранилищах и реляционных СУБД.Запрос на действия с данными в Hive называется заданием. Задания можно запускать на управляющем хосте с помощью командной оболочки (CLI) Hive, а также с помощью CLI Yandex.Cloud.Для запуска Hive CLI выполните команду hive на управляющем хосте.Проверьте, всё ли работает: выполните, например, команду select 1; — корректный результат выглядит так:
Теперь создайте внешнюю таблицу (external table) в формате Parquet, содержащую открытые данные о списке перелётов между городами США в 2018 году. Для этого с помощью Hive CLI выполните запрос:
Скопировать кодhive> 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';
Проверим список таблиц, выполнив команду show tables
. Результат должен выглядеть так:
Запросим число перелётов с разбивкой по месяцам:
Скопировать кодhive> SELECT Month, COUNT(*) FROM flights GROUP BY Month;
Пример результата такого запроса:
Безусловно, на одном примере сложно показать возможности сервиса Data Proc. Если вас интересует работа с большими данными в облаке, посмотрите доклады сотрудников Yandex.Cloud об управлении кластерами Hadoop и заданиями в Data Proc на YouTube-канале Yandex.Cloud.
Свежие комментарии