Skip to content

AdvancedJavaLabs/lab4-Bromles

 
 

Repository files navigation

Review Assignment Due Date

Лабораторная работа: Реализация MapReduce для анализа данных о продажах с ипользованием HADOOP!!!

Цель работы

Ознакомиться с концепцией распределенных вычислений на примере модели MapReduce. Научиться разрабатывать многопоточную систему для обработки больших данных и применять её для анализа данных о продажах.

Описание задачи

У вас в репозитории есть несколько CSV-файлов, представляющих данные о продажах, например:

transaction_id,product_id,category,price,quantity
1,101,electronics,300.00,2
2,102,books,15.00,5
3,101,electronics,300.00,1
4,103,toys,25.00,4
5,102,books,15.00,3

Необходимо:

  • Вычислить общую выручку для каждой категории товаров.
  • Подсчитать общее количество проданных товаров по категориям.
  • Отсортировать категории по общей выручке в порядке убывания.

Пример вывода:

Category      Revenue    Quantity
electronics   900.00     3
books         120.00     8
toys          100.00     4

Требования

Основная часть:

  • Используем hadoop
  • Написать реализацию MapReduce для обработки CSV-файлов.
  • Реализовать многопоточность в каждой фазе:
    • Map — обработка строк из файлов.
    • Shuffle/Sort — группировка данных по категориям.
    • Reduce — вычисление итоговых значений для каждой категории.
  • Сохранить результат в файл.
  • Обеспечить потокобезопасность при работе с общими данными.
  • Реализовать поддержку одновременной обработки большого количества файлов.

Дополнительные задачи (по желанию):

  • Добавить возможность выбора метрики анализа (например, подсчёт средней цены товара в категории).

Результаты

Результатом работы является сам код, файл с результатами и экспериментальные данные по быстродействию работы написанного кода при изменении числа worker-ов / частей, на которые разбивается файл

About

parallelprogramming-2024-lab4-lab4-parallel-1 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 83.6%
  • Shell 8.3%
  • PowerShell 8.1%