From 5e84fd4fc6c60affce72ecb6458ee1ad579f631d Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Sun, 7 Dec 2025 08:07:13 +0000 Subject: [PATCH 01/13] Setting up GitHub Classroom Feedback From 7bfc9bfa5a9593cbee341f5d81e3bf2402bc1237 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Sun, 7 Dec 2025 08:07:16 +0000 Subject: [PATCH 02/13] add deadline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 948dc85..84b20f4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/uyodabcP) ## Лабораторная работа: Реализация MapReduce для анализа данных о продажах с ипользованием HADOOP!!! # Цель работы From e3d9aaab444b778aa03b8d0bcbdd9b4ddff9ab60 Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Sun, 7 Dec 2025 13:26:04 +0300 Subject: [PATCH 03/13] chore: add lfsconfig, gitignore --- .gitignore | 40 ++++++++++++++++++++++++++++++++++++++++ .lfsconfig | 2 ++ 2 files changed, 42 insertions(+) create mode 100644 .gitignore create mode 100644 .lfsconfig diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0bc3901 --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ +.kotlin + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.lfsconfig b/.lfsconfig new file mode 100644 index 0000000..e45cd60 --- /dev/null +++ b/.lfsconfig @@ -0,0 +1,2 @@ +[lfs] + url = https://github.com/AdvancedJavaLabs/lab4-parallel.git/info/lfs \ No newline at end of file From 93761ef34b0950996e43980b33206733eb7c0dae Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Sun, 7 Dec 2025 13:27:31 +0300 Subject: [PATCH 04/13] feat: init gradle project --- build.gradle.kts | 24 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 234 ++++++++++++++++++ gradlew.bat | 89 +++++++ settings.gradle.kts | 1 + .../itmo/sales_data_analysis/Main.java | 15 ++ 7 files changed, 368 insertions(+) create mode 100644 build.gradle.kts create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..be250e5 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + id("java") +} + +group = "com.yu_ufimtsev.itmo.sales_data_analysis" +version = "1.0-SNAPSHOT" + +java { + sourceCompatibility = JavaVersion.VERSION_25 +} + +repositories { + mavenCentral() +} + +dependencies { + testImplementation(platform("org.junit:junit-bom:5.10.0")) + testImplementation("org.junit.jupiter:junit-jupiter") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") +} + +tasks.test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..c4c26d5 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "lab3-YuriUfimtsev" \ No newline at end of file diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java new file mode 100644 index 0000000..84d350a --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java @@ -0,0 +1,15 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis; + +public class Main { + static void main() { + //TIP Press with your caret at the highlighted text + // to see how IntelliJ IDEA suggests fixing it. + IO.println(String.format("Hello and welcome!")); + + for (int i = 1; i <= 5; i++) { + //TIP Press to start debugging your code. We have set one breakpoint + // for you, but you can always add more by pressing . + IO.println("i = " + i); + } + } +} From 0ac2e751d072210a1a2c8b1fc72b25393cfc9db2 Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Sun, 7 Dec 2025 13:34:44 +0300 Subject: [PATCH 05/13] chore: move csv files --- .gitignore | 3 +++ 0.csv => data/0.csv | 0 1.csv => data/1.csv | 0 2.csv => data/2.csv | 0 3.csv => data/3.csv | 0 4.csv => data/4.csv | 0 5.csv => data/5.csv | 0 6.csv => data/6.csv | 0 7.csv => data/7.csv | 0 9 files changed, 3 insertions(+) rename 0.csv => data/0.csv (100%) rename 1.csv => data/1.csv (100%) rename 2.csv => data/2.csv (100%) rename 3.csv => data/3.csv (100%) rename 4.csv => data/4.csv (100%) rename 5.csv => data/5.csv (100%) rename 6.csv => data/6.csv (100%) rename 7.csv => data/7.csv (100%) diff --git a/.gitignore b/.gitignore index 0bc3901..a2ff93e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ build/ !**/src/test/**/build/ .kotlin +# Data csv files +data/ + ### IntelliJ IDEA ### .idea *.iws diff --git a/0.csv b/data/0.csv similarity index 100% rename from 0.csv rename to data/0.csv diff --git a/1.csv b/data/1.csv similarity index 100% rename from 1.csv rename to data/1.csv diff --git a/2.csv b/data/2.csv similarity index 100% rename from 2.csv rename to data/2.csv diff --git a/3.csv b/data/3.csv similarity index 100% rename from 3.csv rename to data/3.csv diff --git a/4.csv b/data/4.csv similarity index 100% rename from 4.csv rename to data/4.csv diff --git a/5.csv b/data/5.csv similarity index 100% rename from 5.csv rename to data/5.csv diff --git a/6.csv b/data/6.csv similarity index 100% rename from 6.csv rename to data/6.csv diff --git a/7.csv b/data/7.csv similarity index 100% rename from 7.csv rename to data/7.csv From 4a67cb5636108ed5b8404e1356b11b1ec377dc35 Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Sun, 7 Dec 2025 20:24:33 +0300 Subject: [PATCH 06/13] feat: support hadoop components infrastructure (docker) --- .gitignore | 5 +- build.gradle.kts | 10 +--- gradle/wrapper/gradle-wrapper.properties | 2 +- hadoop/docker-compose.yml | 74 ++++++++++++++++++++++++ hadoop/hadoop.env | 7 +++ 5 files changed, 89 insertions(+), 9 deletions(-) create mode 100644 hadoop/docker-compose.yml create mode 100644 hadoop/hadoop.env diff --git a/.gitignore b/.gitignore index a2ff93e..9d0e170 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,10 @@ build/ .kotlin # Data csv files -data/ +input-data/ + +# Hadoop internals +hadoop/data ### IntelliJ IDEA ### .idea diff --git a/build.gradle.kts b/build.gradle.kts index be250e5..784c13f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,9 @@ group = "com.yu_ufimtsev.itmo.sales_data_analysis" version = "1.0-SNAPSHOT" java { - sourceCompatibility = JavaVersion.VERSION_25 + toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } } repositories { @@ -14,11 +16,5 @@ repositories { } dependencies { - testImplementation(platform("org.junit:junit-bom:5.10.0")) - testImplementation("org.junit.jupiter:junit-jupiter") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") -} -tasks.test { - useJUnitPlatform() } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 63e0e83..5c82cb0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/hadoop/docker-compose.yml b/hadoop/docker-compose.yml new file mode 100644 index 0000000..a0963a9 --- /dev/null +++ b/hadoop/docker-compose.yml @@ -0,0 +1,74 @@ +services: + namenode: + image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8 + container_name: namenode + restart: always + ports: + - "9000:9000" + - "9870:9870" + volumes: + - ./../input-data:/opt/hadoop/jobs + - ./data/namenode:/hadoop/dfs/name + environment: + - CLUSTER_NAME=my-hadoop-cluster + env_file: + - ./hadoop.env + + datanode: + image: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8 + container_name: datanode + restart: always + volumes: + - ./data/datanode:/hadoop/dfs/data + environment: + SERVICE_PRECONDITION: "namenode:9870" + env_file: + - ./hadoop.env + depends_on: + - namenode + + resourcemanager: + image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8 + container_name: resourcemanager + restart: always + volumes: + - ./../jobs:/opt/hadoop/jobs + ports: + - "8088:8088" + environment: + SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864" + env_file: + - ./hadoop.env + depends_on: + - namenode + - datanode + + nodemanager: + image: bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8 + container_name: nodemanager + restart: always + ports: + - "8042:8042" + environment: + SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088" + env_file: + - ./hadoop.env + depends_on: + - resourcemanager + + historyserver: + image: bde2020/hadoop-historyserver:2.0.0-hadoop3.2.1-java8 + container_name: historyserver + restart: always + ports: + - "8188:8188" + environment: + SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088" + volumes: + - ./data/history:/hadoop/yarn/timeline + env_file: + - ./hadoop.env + depends_on: + - namenode + - datanode + - resourcemanager \ No newline at end of file diff --git a/hadoop/hadoop.env b/hadoop/hadoop.env new file mode 100644 index 0000000..5c102aa --- /dev/null +++ b/hadoop/hadoop.env @@ -0,0 +1,7 @@ +CORE_CONF_fs_defaultFS=hdfs://namenode:9000 +HDFS_CONF_dfs_replication=1 + +YARN_CONF_yarn_resourcemanager_hostname=resourcemanager +YARN_CONF_yarn_nodemanager_aux___services=mapreduce_shuffle + +MAPRED_CONF_mapreduce_framework_name=yarn From c77f3ed8431578d94e8d3be46de99b5fc10fd63a Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Mon, 8 Dec 2025 16:36:36 +0300 Subject: [PATCH 07/13] feat: implement core logic (SalesPipelineJob, Mappers, Reducers, Comparator) --- .../itmo/sales_data_analysis/Main.java | 15 --- .../sales_data_analysis/SalesPipelineJob.java | 123 ++++++++++++++++++ .../aggregate_stage/CategoryStatsReducer.java | 25 ++++ .../RevenueCalculationMapper.java | 37 ++++++ .../DescendingDoubleComparator.java | 17 +++ .../sort_stage/SortByRevenueMapper.java | 36 +++++ .../sort_stage/SortedDataToFileReducer.java | 31 +++++ 7 files changed, 269 insertions(+), 15 deletions(-) delete mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/CategoryStatsReducer.java create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/RevenueCalculationMapper.java create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/DescendingDoubleComparator.java create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortByRevenueMapper.java create mode 100644 src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortedDataToFileReducer.java diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java deleted file mode 100644 index 84d350a..0000000 --- a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/Main.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.yu_ufimtsev.itmo.sales_data_analysis; - -public class Main { - static void main() { - //TIP Press with your caret at the highlighted text - // to see how IntelliJ IDEA suggests fixing it. - IO.println(String.format("Hello and welcome!")); - - for (int i = 1; i <= 5; i++) { - //TIP Press to start debugging your code. We have set one breakpoint - // for you, but you can always add more by pressing . - IO.println("i = " + i); - } - } -} diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java new file mode 100644 index 0000000..2ab9e16 --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java @@ -0,0 +1,123 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis; + +import com.yu_ufimtsev.itmo.sales_data_analysis.aggregate_stage.CategoryStatsReducer; +import com.yu_ufimtsev.itmo.sales_data_analysis.aggregate_stage.RevenueCalculationMapper; +import com.yu_ufimtsev.itmo.sales_data_analysis.sort_stage.DescendingDoubleComparator; +import com.yu_ufimtsev.itmo.sales_data_analysis.sort_stage.SortByRevenueMapper; +import com.yu_ufimtsev.itmo.sales_data_analysis.sort_stage.SortedDataToFileReducer; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Job; + +import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; +import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; +import org.apache.hadoop.fs.Path; + +public class SalesPipelineJob { + public static void main(String[] args) throws Exception { + + if (args.length != 5) { + System.err.println("Please, use format:" + + " SalesPipelineJob "); + System.exit(1); + } + + long splitSize = Long.parseLong(args[3]) * 1024 * 1024; + int reducersCount = Integer.parseInt(args[4]); + + String inputPath = args[0]; + String intermediatePath = args[1]; + String outputPath = args[2]; + + Configuration configuration = new Configuration(); + + long aggregationJobDuration = prepareAndExecuteAggregationSalesJob( + configuration, splitSize, reducersCount, inputPath, intermediatePath + ); + System.out.println("--------------------------------------------------"); + System.out.printf("Sales aggregation job time: %d ms\n", aggregationJobDuration); + System.out.println("--------------------------------------------------"); + + long sortingJobDuration = prepareAndExecuteSortingCategoriesJob( + configuration, intermediatePath, outputPath + ); + System.out.println("--------------------------------------------------"); + System.out.printf("Categories sorting job time: %d ms\n", sortingJobDuration); + System.out.println("--------------------------------------------------"); + + long totalTime = aggregationJobDuration + sortingJobDuration; + System.out.println("--------------------------------------------------"); + System.out.printf("Total jobs time: %d ms\n", totalTime); + System.out.println("--------------------------------------------------"); + } + + private static long prepareAndExecuteAggregationSalesJob( + Configuration configuration, + long splitSize, int reducersCount, String inputPath, String intermediatePath) throws Exception { + + Job aggregationJob = Job.getInstance(configuration); + aggregationJob.setJobName("sales-aggregation"); + + aggregationJob.setJarByClass(SalesPipelineJob.class); + aggregationJob.setMapperClass(RevenueCalculationMapper.class); + aggregationJob.setReducerClass(CategoryStatsReducer.class); + + aggregationJob.setMapOutputKeyClass(Text.class); + aggregationJob.setMapOutputValueClass(Text.class); + aggregationJob.setOutputKeyClass(Text.class); + aggregationJob.setOutputValueClass(Text.class); + + FileInputFormat.setMaxInputSplitSize(aggregationJob, splitSize); + aggregationJob.setNumReduceTasks(reducersCount); + + FileInputFormat.addInputPath(aggregationJob, new Path(inputPath)); + FileOutputFormat.setOutputPath(aggregationJob, new Path(intermediatePath)); + + long startAggregationJob = System.currentTimeMillis(); + boolean isAggregationJobSuccessful = aggregationJob.waitForCompletion(true); + long endAggregationJob = System.currentTimeMillis(); + long aggregationJobDuration = endAggregationJob - startAggregationJob; + + if (!isAggregationJobSuccessful) { + System.err.println("Aggregation job failed"); + System.exit(1); + } + + return aggregationJobDuration; + } + + private static long prepareAndExecuteSortingCategoriesJob( + Configuration configuration, String intermediatePath, String outputPath) throws Exception { + + Job sortingCategoriesJob = Job.getInstance(configuration, "sorting-categories"); + sortingCategoriesJob.setJobName("sorting-categories"); + + sortingCategoriesJob.setJarByClass(SalesPipelineJob.class); + sortingCategoriesJob.setMapperClass(SortByRevenueMapper.class); + sortingCategoriesJob.setReducerClass(SortedDataToFileReducer.class); + + sortingCategoriesJob.setMapOutputKeyClass(DoubleWritable.class); + sortingCategoriesJob.setMapOutputValueClass(Text.class); + sortingCategoriesJob.setOutputKeyClass(Text.class); + sortingCategoriesJob.setOutputValueClass(Text.class); + + sortingCategoriesJob.setSortComparatorClass(DescendingDoubleComparator.class); + sortingCategoriesJob.setNumReduceTasks(1); + + FileInputFormat.addInputPath(sortingCategoriesJob, new Path(intermediatePath)); + FileOutputFormat.setOutputPath(sortingCategoriesJob, new Path(outputPath)); + + long startSortingJob = System.currentTimeMillis(); + boolean isSortingJobSuccessful = sortingCategoriesJob.waitForCompletion(true); + long endSortingJob = System.currentTimeMillis(); + long sortingJobDuration = endSortingJob - startSortingJob; + + if (!isSortingJobSuccessful) { + System.err.println("Sorting job failed"); + System.exit(1); + } + + return sortingJobDuration; + } +} diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/CategoryStatsReducer.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/CategoryStatsReducer.java new file mode 100644 index 0000000..6102797 --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/CategoryStatsReducer.java @@ -0,0 +1,25 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis.aggregate_stage; + +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class CategoryStatsReducer extends Reducer { + + @Override + protected void reduce(Text key, Iterable values, Context context) + throws IOException, InterruptedException { + + double totalRevenue = 0; + int totalQuantity = 0; + + for (Text value : values) { + String[] parts = value.toString().split(";"); + totalRevenue += Double.parseDouble(parts[0]); + totalQuantity += Integer.parseInt(parts[1]); + } + + context.write(key, new Text(String.format("%.2f\t%d", totalRevenue, totalQuantity))); + } +} diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/RevenueCalculationMapper.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/RevenueCalculationMapper.java new file mode 100644 index 0000000..adb4039 --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/aggregate_stage/RevenueCalculationMapper.java @@ -0,0 +1,37 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis.aggregate_stage; + +import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; + +public class RevenueCalculationMapper extends Mapper { + + @Override + protected void map(LongWritable key, Text value, Context context) + throws IOException, InterruptedException { + + String line = value.toString(); + + if (line.startsWith("transaction_id")) { + return; + } + + String[] parts = line.split(","); + if (parts.length != 5) { + return; + } + + String categoryName = parts[2]; + + double price = Double.parseDouble(parts[3]); + int quantity = Integer.parseInt(parts[4]); + double revenue = price * quantity; + + context.write( + new Text(categoryName), + new Text(String.format("%s;%s", revenue, quantity)) + ); + } +} diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/DescendingDoubleComparator.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/DescendingDoubleComparator.java new file mode 100644 index 0000000..f15d636 --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/DescendingDoubleComparator.java @@ -0,0 +1,17 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis.sort_stage; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.WritableComparable; +import org.apache.hadoop.io.WritableComparator; + +public class DescendingDoubleComparator extends WritableComparator { + + public DescendingDoubleComparator() { + super(DoubleWritable.class, true); + } + + @Override + public int compare(WritableComparable a, WritableComparable b) { + return -((DoubleWritable) a).compareTo((DoubleWritable) b); + } +} diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortByRevenueMapper.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortByRevenueMapper.java new file mode 100644 index 0000000..e5bcf38 --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortByRevenueMapper.java @@ -0,0 +1,36 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis.sort_stage; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; + +import java.io.IOException; + +public class SortByRevenueMapper extends Mapper { + + @Override + protected void map(LongWritable key, Text value, Context context) + throws IOException, InterruptedException { + + String line = value.toString().trim(); + if (line.isEmpty()) { + return; + + } + String[] parts = value.toString().split("\\t"); + if (parts.length != 3) { + return; + } + + String categoryName = parts[0].trim(); + + double revenue = Double.parseDouble(parts[1].trim()); + int quantity = Integer.parseInt(parts[2].trim()); + + context.write( + new DoubleWritable(revenue), + new Text(String.format("%s-%d", categoryName, quantity)) + ); + } +} diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortedDataToFileReducer.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortedDataToFileReducer.java new file mode 100644 index 0000000..b5df99d --- /dev/null +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/sort_stage/SortedDataToFileReducer.java @@ -0,0 +1,31 @@ +package com.yu_ufimtsev.itmo.sales_data_analysis.sort_stage; + +import org.apache.hadoop.io.DoubleWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Reducer; + +import java.io.IOException; + +public class SortedDataToFileReducer extends Reducer { + + private boolean isHeaderWritten; + + @Override + protected void reduce(DoubleWritable key, Iterable values, Context context) + throws IOException, InterruptedException { + + if (!isHeaderWritten) { + String header = String.format("%-20s %-15s %-10s", "Category", "Revenue", "Quantity"); + context.write(null, new Text(header)); + isHeaderWritten = true; + } + + double revenue = key.get(); + + for (Text value : values) { + String[] parts = value.toString().split("-"); + String formattedResult = String.format("%-20s %-15.2f %-10s", parts[0], revenue, parts[1]); + context.write(null, new Text(formattedResult)); + } + } +} From 95e061776e30f1a708a6bb4c52ac81edc2929251 Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Mon, 8 Dec 2025 16:37:34 +0300 Subject: [PATCH 08/13] chore: transfer csv data --- {data => input-data}/0.csv | 0 {data => input-data}/1.csv | 0 {data => input-data}/2.csv | 0 {data => input-data}/3.csv | 0 {data => input-data}/4.csv | 0 {data => input-data}/5.csv | 0 {data => input-data}/6.csv | 0 {data => input-data}/7.csv | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {data => input-data}/0.csv (100%) rename {data => input-data}/1.csv (100%) rename {data => input-data}/2.csv (100%) rename {data => input-data}/3.csv (100%) rename {data => input-data}/4.csv (100%) rename {data => input-data}/5.csv (100%) rename {data => input-data}/6.csv (100%) rename {data => input-data}/7.csv (100%) diff --git a/data/0.csv b/input-data/0.csv similarity index 100% rename from data/0.csv rename to input-data/0.csv diff --git a/data/1.csv b/input-data/1.csv similarity index 100% rename from data/1.csv rename to input-data/1.csv diff --git a/data/2.csv b/input-data/2.csv similarity index 100% rename from data/2.csv rename to input-data/2.csv diff --git a/data/3.csv b/input-data/3.csv similarity index 100% rename from data/3.csv rename to input-data/3.csv diff --git a/data/4.csv b/input-data/4.csv similarity index 100% rename from data/4.csv rename to input-data/4.csv diff --git a/data/5.csv b/input-data/5.csv similarity index 100% rename from data/5.csv rename to input-data/5.csv diff --git a/data/6.csv b/input-data/6.csv similarity index 100% rename from data/6.csv rename to input-data/6.csv diff --git a/data/7.csv b/input-data/7.csv similarity index 100% rename from data/7.csv rename to input-data/7.csv From 9b62fd07d29504ef0d834835dd1472ccf0c19b2a Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Mon, 8 Dec 2025 16:38:48 +0300 Subject: [PATCH 09/13] build: update hadoop env, build.gradle.kts --- build.gradle.kts | 16 +++++++++++++++- hadoop/hadoop.env | 3 +++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 784c13f..79eea39 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,5 +16,19 @@ repositories { } dependencies { + implementation("org.apache.hadoop:hadoop-common:3.2.1") + implementation("org.apache.hadoop:hadoop-mapreduce-client-core:3.2.1") + implementation("org.apache.hadoop:hadoop-mapreduce-client-jobclient:3.2.1") +} + +tasks.jar { + archiveBaseName.set("sales-analyzer-job") + archiveVersion.set("") + archiveClassifier.set("") -} \ No newline at end of file + manifest { + attributes( + "Main-Class" to "com.yu_ufimtsev.itmo.sales_data_analysis.SalesPipelineJob" + ) + } +} diff --git a/hadoop/hadoop.env b/hadoop/hadoop.env index 5c102aa..f8034e4 100644 --- a/hadoop/hadoop.env +++ b/hadoop/hadoop.env @@ -5,3 +5,6 @@ YARN_CONF_yarn_resourcemanager_hostname=resourcemanager YARN_CONF_yarn_nodemanager_aux___services=mapreduce_shuffle MAPRED_CONF_mapreduce_framework_name=yarn +MAPRED_CONF_yarn_app_mapreduce_am_env=HADOOP_MAPRED_HOME=/opt/hadoop-3.2.1/ +MAPRED_CONF_mapreduce_map_env=HADOOP_MAPRED_HOME=/opt/hadoop-3.2.1/ +MAPRED_CONF_mapreduce_reduce_env=HADOOP_MAPRED_HOME=/opt/hadoop-3.2.1/ \ No newline at end of file From 82eabea4c0e4cdb78ebbdba3d6cc5c07f13cfaba Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Mon, 8 Dec 2025 18:59:27 +0300 Subject: [PATCH 10/13] feat: implement hadoop job runner script (sh); add results --- result.txt | 21 ++++++++++++++++++++ run_pipeline.sh | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 result.txt create mode 100644 run_pipeline.sh diff --git a/result.txt b/result.txt new file mode 100644 index 0000000..a3e2f09 --- /dev/null +++ b/result.txt @@ -0,0 +1,21 @@ +Category Revenue Quantity +clothing 4560302171.99 911487 +video games 4560108307.50 913326 +baby products 4541435362.25 907186 +beauty products 4533874327.85 906417 +gardening tools 4531880837.74 905841 +automotive 4529861310.74 904962 +music instruments 4512294466.14 902389 +furniture 4503986763.16 900244 +electronics 4497526631.04 903266 +pet supplies 4488741730.38 896724 +stationery 4481794912.39 898265 +home appliances 4473888361.73 895815 +sports equipment 4469387812.34 894287 +groceries 4466915230.97 895470 +footwear 4465574983.36 894424 +jewelry 4463823670.79 893980 +office equipment 4463564947.38 892370 +toys 4462453654.12 892741 +books 4457620825.95 890948 +health & wellness 4454082892.49 890475 diff --git a/run_pipeline.sh b/run_pipeline.sh new file mode 100644 index 0000000..ad1d3ab --- /dev/null +++ b/run_pipeline.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Чтобы предотвратить path rewriting от Git Bash +export MSYS_NO_PATHCONV=1 + +# === Параметры для главной job-ы === +SPLIT_MB=${1:-10} +REDUCERS_COUNT=${2:-10} + +HDFS_INPUT_DIR="/input" +HDFS_INTERMEDIATE_DIR="/tmp/pipeline-temp" +HDFS_OUTPUT_DIR="/output" + +echo "=== Starting Hadoop containers ===" +docker compose -f ./hadoop/docker-compose.yml up -d + +echo "=== Waiting for HDFS to leave safemode ===" +docker exec namenode hdfs dfsadmin -safemode wait + +echo "=== Copying input CSV files to HDFS ===" +if docker exec namenode hdfs dfs -test -d /input; then + echo "HDFS directory /input already exists" +else + echo "Creating HDFS directory /input and put csv files" + docker exec namenode hdfs dfs -mkdir /input + docker exec namenode hdfs dfs -put -f /opt/hadoop/jobs/*.csv /input +fi + +echo "=== HDFS input csv files ===" +docker exec namenode hdfs dfs -ls /input + +echo "=== Building JAR ===" +./gradlew clean jar + +echo "=== Copy JAR to jobs folder ===" +cp build/libs/sales-analyzer-job.jar ./jobs/sales-analyzer-job.jar + +echo "=== Cleaning previous HDFS directories ===" +docker exec namenode hdfs dfs -rm -r -f "$HDFS_INTERMEDIATE_DIR" +docker exec namenode hdfs dfs -rm -r -f "$HDFS_OUTPUT_DIR" + +echo "=== Running pipeline ===" +docker exec resourcemanager yarn jar \ + /opt/hadoop/jobs/sales-analyzer-job.jar \ + "$HDFS_INPUT_DIR" \ + "$HDFS_INTERMEDIATE_DIR" \ + "$HDFS_OUTPUT_DIR" \ + "$SPLIT_MB" \ + "$REDUCERS_COUNT" + +echo "=== Final output ===" +docker exec namenode hdfs dfs -cat /output/part-r-00000 > result.txt + From 40229078f0c7468e1d0761a2a86e776beab1ce2b Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Mon, 8 Dec 2025 18:59:54 +0300 Subject: [PATCH 11/13] feat: support infrastructure for experiments; upload experiments result --- .gitattributes | 2 +- hadoop/docker-compose.yml | 1 + reports/results.csv | 48 +++++++++++++++++++ run_experiments.sh | 16 +++++++ .../sales_data_analysis/SalesPipelineJob.java | 40 +++++++++++++++- 5 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 reports/results.csv create mode 100644 run_experiments.sh diff --git a/.gitattributes b/.gitattributes index 87e654b..a98b071 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -*.csv filter=lfs diff=lfs merge=lfs -text +input-data/*.csv filter=lfs diff=lfs merge=lfs -text diff --git a/hadoop/docker-compose.yml b/hadoop/docker-compose.yml index a0963a9..a85b382 100644 --- a/hadoop/docker-compose.yml +++ b/hadoop/docker-compose.yml @@ -33,6 +33,7 @@ services: restart: always volumes: - ./../jobs:/opt/hadoop/jobs + - ./../reports:/opt/hadoop/reports ports: - "8088:8088" environment: diff --git a/reports/results.csv b/reports/results.csv new file mode 100644 index 0000000..314cf21 --- /dev/null +++ b/reports/results.csv @@ -0,0 +1,48 @@ +splitMB,reducersCount,aggregationMs,sortingMs,totalMs,timestamp +1,1,160695,18419,179114,2025-12-08T14:27:50.125 +1,2,141069,19424,160493,2025-12-08T14:30:51.350 +1,4,158142,18442,176584,2025-12-08T14:34:09.211 +1,8,159976,20819,180795,2025-12-08T14:37:29.671 +1,16,170142,26454,196596,2025-12-08T14:41:07.208 + +2,1,84894,18507,103401,2025-12-08T14:43:11.058 +2,2,94107,19498,113605,2025-12-08T14:45:26.429 +2,4,94743,18494,113237,2025-12-08T14:47:40.043 +2,8,94850,22470,117320,2025-12-08T14:49:58.593 +2,16,100814,29557,130371,2025-12-08T14:52:29.284 + +4,1,52675,20513,73188,2025-12-08T14:54:04.802 +4,2,56703,19529,76232,2025-12-08T14:55:43.205 +4,4,55538,19418,74956,2025-12-08T14:57:19.289 +4,8,57566,21692,79258,2025-12-08T14:58:59.552 +4,16,61524,27629,89153,2025-12-08T15:00:50.737 + +8,1,33411,18700,52111,2025-12-08T15:02:02.939 +8,2,33741,19423,53164,2025-12-08T15:03:15.939 +8,4,35330,19415,54745,2025-12-08T15:04:30.353 +8,8,39364,21493,60857,2025-12-08T15:05:50.757 +8,16,43846,28497,72343,2025-12-08T15:07:23.098 + +16,1,26251,18418,44669,2025-12-08T15:08:27.459 +16,2,25265,18646,43911,2025-12-08T15:09:30.894 +16,4,27269,19431,46700,2025-12-08T15:10:37.068 +16,8,29336,23506,52842,2025-12-08T15:11:49.378 +16,16,36340,26477,62817,2025-12-08T15:13:12.353 + +32,1,23254,19026,42280,2025-12-08T15:14:14.512 +32,2,22223,18424,40647,2025-12-08T15:15:15.050 +32,4,23237,20431,43668,2025-12-08T15:16:18.604 +32,8,28372,21497,49869,2025-12-08T15:17:29.782 +32,16,31777,26562,58339,2025-12-08T15:18:47.912 + +64,1,23269,19449,42718,2025-12-08T15:19:50.265 +64,2,21181,19421,40602,2025-12-08T15:20:50.422 +64,4,22258,19442,41700,2025-12-08T15:21:51.863 +64,8,25326,21460,46786,2025-12-08T15:22:58.374 +64,16,29311,26512,55823,2025-12-08T15:24:13.962 + +140,1,22192,19623,41815,2025-12-08T15:25:15.858 +140,2,22231,19443,41674,2025-12-08T15:26:17.224 +140,4,25216,19439,44655,2025-12-08T15:27:21.432 +140,8,27327,21675,49002,2025-12-08T15:28:30.158 +140,16,30395,28575,58970,2025-12-08T15:29:49.271 diff --git a/run_experiments.sh b/run_experiments.sh new file mode 100644 index 0000000..e71954e --- /dev/null +++ b/run_experiments.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Всего данных ~ 132 MB + +# actual splits numbers = 66, +SPLITS_MB=(1 2 4 8 16 32 64 140) +REDUCERS_COUNT=(1 2 4 8 16) + +for s in "${SPLITS_MB[@]}"; do + for r in "${REDUCERS_COUNT[@]}"; do + echo "=== Running split=$s reducers=$r ===" + ./run_pipeline.sh $s $r + echo "" + done +done + +echo "Experiments completed. View report in ./reports/results.csv" diff --git a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java index 2ab9e16..512a748 100644 --- a/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java +++ b/src/main/java/com/yu_ufimtsev/itmo/sales_data_analysis/SalesPipelineJob.java @@ -14,7 +14,14 @@ import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.fs.Path; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + public class SalesPipelineJob { + + private static final String REPORT_CSV_PATH = "/opt/hadoop/reports/results.csv"; + public static void main(String[] args) throws Exception { if (args.length != 5) { @@ -23,7 +30,8 @@ public static void main(String[] args) throws Exception { System.exit(1); } - long splitSize = Long.parseLong(args[3]) * 1024 * 1024; + long splitMb = Long.parseLong(args[3]); + long splitSizeInBytes = splitMb * 1024 * 1024; int reducersCount = Integer.parseInt(args[4]); String inputPath = args[0]; @@ -33,7 +41,7 @@ public static void main(String[] args) throws Exception { Configuration configuration = new Configuration(); long aggregationJobDuration = prepareAndExecuteAggregationSalesJob( - configuration, splitSize, reducersCount, inputPath, intermediatePath + configuration, splitSizeInBytes, reducersCount, inputPath, intermediatePath ); System.out.println("--------------------------------------------------"); System.out.printf("Sales aggregation job time: %d ms\n", aggregationJobDuration); @@ -50,6 +58,8 @@ public static void main(String[] args) throws Exception { System.out.println("--------------------------------------------------"); System.out.printf("Total jobs time: %d ms\n", totalTime); System.out.println("--------------------------------------------------"); + + appendResultsToCsv(splitMb, reducersCount, aggregationJobDuration, sortingJobDuration, totalTime); } private static long prepareAndExecuteAggregationSalesJob( @@ -120,4 +130,30 @@ private static long prepareAndExecuteSortingCategoriesJob( return sortingJobDuration; } + + private static void appendResultsToCsv(long splitMB, long reducersCount, long aggregationMs, + long sortingMs, long totalPipelineMs) { + + try { + File reportFile = new File(REPORT_CSV_PATH); + boolean isReportFileNew = !reportFile.exists(); + + try (FileWriter fileWriter = new FileWriter(reportFile, true)) { + if (isReportFileNew) { + fileWriter.write("splitMB,reducersCount,aggregationMs,sortingMs,totalMs,timestamp\n"); + } + + fileWriter.write(String.format( + "%d,%d,%d,%d,%d,%s\n", + splitMB, reducersCount, + aggregationMs, sortingMs, totalPipelineMs, + java.time.LocalDateTime.now() + )); + } + System.out.println("CSV report successfully updated"); + + } catch (IOException e) { + System.err.println("Failed writing to CSV report: " + e.getMessage()); + } + } } From b7ecd1b2a740a5d89dca65e3ffd4186ffe2b2489 Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Mon, 8 Dec 2025 19:00:13 +0300 Subject: [PATCH 12/13] feat: add figures --- figures/seconds_by_reducers_figure.png | Bin 0 -> 31965 bytes figures/seconds_by_splitters_figure.png | Bin 0 -> 39507 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 figures/seconds_by_reducers_figure.png create mode 100644 figures/seconds_by_splitters_figure.png diff --git a/figures/seconds_by_reducers_figure.png b/figures/seconds_by_reducers_figure.png new file mode 100644 index 0000000000000000000000000000000000000000..9220e19fb7dd505d43c4a084d76a71b1bf30e24b GIT binary patch literal 31965 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 literal 0 HcmV?d00001 From c2c99200cb0ed4f14c07e9937cbdadc19cbe920a Mon Sep 17 00:00:00 2001 From: Yuri Ufimtsev Date: Tue, 9 Dec 2025 14:39:22 +0300 Subject: [PATCH 13/13] feat: update figures --- figures/seconds_by_reducers_figure.png | Bin 31965 -> 34363 bytes figures/seconds_by_splitters_figure.png | Bin 39507 -> 0 bytes figures/seconds_by_splitting_figure.png | Bin 0 -> 35626 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 figures/seconds_by_splitters_figure.png create mode 100644 figures/seconds_by_splitting_figure.png diff --git a/figures/seconds_by_reducers_figure.png b/figures/seconds_by_reducers_figure.png index 9220e19fb7dd505d43c4a084d76a71b1bf30e24b..b8916aa0a6c8464ac95c66438d0fde38ab72d809 100644 GIT binary patch literal 34363 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 diff --git a/figures/seconds_by_splitting_figure.png b/figures/seconds_by_splitting_figure.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f87579846774fe58e191231a972c222d53b783 GIT binary patch literal 35626 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 literal 0 HcmV?d00001