Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика 3.docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
6.35 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Математическая кибернетика и информационные технологии»

Дисциплина «Большие данные»

Практическая работа №3

Москва, 2024

Оглавление

1 Цель Работы 3

2 Ход выполнения работы 3

3 Вывод 32

1 Цель Работы

Получить навыки работы с Hive.

2 Ход выполнения работы

Скопируем адрес HiveServer2 JDBC URL и на ноде, на которой мы будем работать, введем следующую команду: beeline -u "HiveServer2 JDBC URL" для подключения к Hive (рисунок 1).

Рисунок 1 – Подключение к Hive

1. Запуск оболочки Hive

Выполним команду SHOW DATABASES, которая показывает список существующих баз данных Hive (рисунок 2).

Рисунок 2 – Запуск команды SHOW DATABASES

2. Создание базы данных

Создадим тестовую БД. Для этого используем команду: hive> create database smirnov_test location '/user/smirnov/test_warehouse'; При создании базы нужно будет указать полный путь к warehouse (рисунок 3).

Рисунок 3 – Запуск команды CREATE DATABASE

Проверим, создалась ли у нас БД. Используем команду SHOW DATABASES для этого (рисунок 4).

Рисунок 4 – Запуск команды SHOW DATABASES для проверки команды CREATE DATABASE

Чтобы удалить базу вводим команду: hive> drop database if exists smirnov_test cascade; Слово CASCADE отвечает за удаление базы вместе с её содержимым. Используем команду SHOW DATABASES, чтобы посмотреть, удалилась ли БД (рисунок 5)

Рисунок 5 – Запуск команды DROP DATABASE и проверка на удаление через команду SHOW DATABASES

Создадим базу повторно, а также выведем информации о БД, используя команду: hive> DESCRIBE DATABASE smirnov_test (рисунок 6 - 7).

Рисунок 6 – Запуск команды SHOW DATABASES для проверки команды CREATE DATABASE

Рисунок 7 – Запуск команды DESCRIBE DATABASE

3. Создание таблиц

Создадим таблицу в тестовой базе. Для исходных данных используем датасет "Подсети" (/data/subnets/variant1): * IP-адрес, * маска подсети, в которой он находится. Нужно ввести следующие команды:

USE smirnov_test;

DROP TABLE IF EXISTS Subnets;

CREATE EXTERNAL TABLE Subnets (ip STRING, mask STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'

STORED AS TEXTFILE

LOCATION '/data/subnets/variant1';

1. USE - подключение к базе данных. Без этой строки таблицы будут создаваться в базе "default".

2. EXTERNAL - существует 2 типа таблиц: managed и external. External-таблицы работают с внешними данными не изменяя их, а managed позволяют их изменять.

3. STORED AS здесь выбирается формат хранения таблицы. Для External-таблиц формат должен совпадать с форматом хранения данных. Для managed рекомендуется использовать сжатые форматы хранения (RCFile, AVRO и т.д.).

Рисунок 8 – Запуск команд для создания таблиц в тестовой базе

Проверим, как создалась таблица (выведем первые 10 строк), используя команду: SELECT * FROM Subnets LIMIT 10. Проверим список таблиц в базе с помощью команды: SHOW TABLES

Рисунок 9 – Запуск команды SELECT * FROM Subnets LIMIT 10 и SHOW TABLES для проверки

4. Партиционирование

Создадим партиционированную таблицу из таблицы Subnets. Информация о каждой партиции хранится в отдельной HDFS-директории внутри metastore.

SET hive. exec. dynamic. partition. Mode=nonstrict;

USE smirnov_test;

DROP TABLE IF EXISTS SubnetsPart;

CREATE EXTERNAL TABLE SubnetsPart (ip STRING)

PARTITIONED BY (mask STRING)

STORED AS TEXTFILE;

INSERT OVERWRITE TABLE SubnetsPart PARTITION (mask)

SELECT * FROM Subnets;

Рисунок 10 – Запуск команд для создания партиционированной таблицы

Уже здесь можно увидеть, что запрос транслируется в MapReduce-задачу. Чтобы убедиться в этом, можно зайти на ApplicationMaster UI (рисунок 11).

Рисунок 11 – Запуск команд для создания партиционированной таблицы

Рисунок 12 – Вывод команд для создания партиционированной таблицы

Рисунок 13 – Вывод команд для создания партиционированной таблицы

Рисунок 14 – Вывод команд для создания партиционированной таблицы

Проверим получившиеся партиции через команду SHOW PARTITIONS SubnetsPart.

Рисунок 15 – Запуск команд для проверки получившихся партиций

С помощью команды: Describe formatted SubnetsPart можно получить полную информацию о свойствах таблицы. Выведем информацию о таблице SubnetsPart (рисунок 16 - 17).

Рисунок 16 – Запуск команды Describe formatted

Рисунок 17 – Запуск команды Describe formatted

Опишем смысл полей из col_name:

  • Col name - информация о столбце ip (string)

  • Partition Information - информация о партициях таблицы. Этот раздел указывает, что у таблицы есть партиции, и в данном случае, колонка mask используется для партиционирования. Таким образом, данные будут разделены по значениям в колонке mask.

  • Detailed Table Information - общая информация о таблице. Здесь представлена информация об общей информации о таблице: создание таблицы, владельце таблицы, время последнего доступа, расположение таблицы, параметры хранения данных и другие свойства.

  • Storage Information - информация о способах хранения данных. Здесь представлена информация о хранении данных, такую как библиотека сериализации/десериализации (Serge), формат ввода и вывода, параметры сжатия и параметры хранения данных.

Соседние файлы в предмете Большие данные