Введение
Добро пожаловать на Международную Торговую Станцию, оживленный узел, где торговцы и путешественники из разных уголков галактики собираются, чтобы обмениваться товарами и услугами. В качестве опытного механика космической станции, ваша экспертиза в высоком спросе для обеспечения бесперебойной работы систем станции. Сегодня вас поручено проанализировать и оптимизировать распределение ресурсов станции, сортируя данные по паттернам использования.
Ваша цель - разработать решение на основе Hadoop, которое может эффективно обрабатывать и сортировать большие наборы данных, обеспечивая эффективное распределение ресурсов станции для удовлетворения постоянно меняющихся потребностей ее разнообразных посетителей.
Настройка среды
В этом шаге мы настроим среду для нашего проекта Hadoop и создадим примерный набор данных.
- Откройте терминал и переключитесь на пользователя
hadoop, выполнив следующую команду:
su - hadoop
- Создайте новую директорию с именем
sorting_labв директории/home/hadoop:
mkdir /home/hadoop/sorting_lab
- Перейдите в директорию
sorting_lab:
cd /home/hadoop/sorting_lab
- Создайте примерный набор данных, выполнив следующую команду:
echo -e "apple\t5\nbanana\t3\norange\t7\ngrape\t2\nstrawberry\t6" > fruit_sales.txt
Эта команда создает файл с именем fruit_sales.txt со следующим содержанием:
apple 5
banana 3
orange 7
grape 2
strawberry 6
Каждая строка в файле представляет фрукт и количество его продаж, разделенных табуляцией.
Загрузка данных в Hive
В этом шаге мы создадим таблицу в Hive и загрузим в нее примерный набор данных.
- Запустите Hive shell, выполнив следующую команду:
hive
- Создайте новую базу данных с именем
sorting_db:
CREATE DATABASE sorting_db;
- Используйте базу данных
sorting_db:
USE sorting_db;
- Создайте новую таблицу с именем
fruit_salesс двумя столбцами:fruit(строка) иcount(целое число):
CREATE TABLE fruit_sales (fruit STRING, count INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
- Загрузите файл
fruit_sales.txtв таблицуfruit_sales:
LOAD DATA LOCAL INPATH '/home/hadoop/sorting_lab/fruit_sales.txt' OVERWRITE INTO TABLE fruit_sales;
- Проверьте, были ли данные загружены правильно, выполнив запрос
SELECT:
SELECT * FROM fruit_sales;
В результате должны быть выведены следующие данные:
apple 5
banana 3
orange 7
grape 2
strawberry 6
- Выйдите из Hive shell, выполнив следующую команду:
quit;
Сортировать данные по использованию
В этом шаге мы отсортируем таблицу fruit_sales по столбцу count в порядке убывания с использованием предложения ORDER BY в Hive.
- Запустите Hive shell, выполнив следующую команду:
hive
- Используйте базу данных
sorting_db:
USE sorting_db;
- Выполните следующий запрос, чтобы отсортировать таблицу
fruit_salesпо столбцуcountв порядке убывания:
CREATE TABLE result AS
SELECT * FROM fruit_sales ORDER BY count DESC;
SELECT * FROM result;
В результате должны быть выведены следующие данные:
orange 7
strawberry 6
apple 5
banana 3
grape 2
- Выйдите из Hive shell, выполнив следующую команду:
quit;
Резюме
В этом практическом занятии мы изучили функцию "сортировка по использованию" в Hadoop Hive. Начали с настройки среды и создания примерного набора данных. Затем узнали, как загрузить данные в таблицу Hive и отсортировать таблицу по определенному столбцу с использованием предложения ORDER BY.
Практическое занятие дало возможность получить hands-on опыт работы с Hive и показало, как сортировать данные по паттернам использования. Освоив этот навык, вы сможете эффективно анализировать и оптимизировать распределение ресурсов в различных сценариях, таких как Международная Торговая Станция.
Во время практического занятия мы также использовали проверки, чтобы убедиться в успешном завершении каждого шага, обеспечивая тем самым то, что вы приобрели необходимые знания и практический опыт для решения подобных задач в будущем.



