aboutsummaryrefslogtreecommitdiffstats
path: root/P1
diff options
context:
space:
mode:
Diffstat (limited to 'P1')
-rwxr-xr-xP1/clean.sh2
-rwxr-xr-xP1/run.sh2
-rwxr-xr-xP1/solutionexe/mapper.goodbin38848 -> 0 bytes
-rwxr-xr-xP1/solutionexe/mapreduce.goodbin32632 -> 0 bytes
-rwxr-xr-xP1/solutionexe/reducer.goodbin33848 -> 0 bytes
-rw-r--r--P1/src/mapreduce.c31
6 files changed, 27 insertions, 8 deletions
diff --git a/P1/clean.sh b/P1/clean.sh
deleted file mode 100755
index 9261690..0000000
--- a/P1/clean.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-cd solutionexe/ && make clean && cd .. && make clean
diff --git a/P1/run.sh b/P1/run.sh
deleted file mode 100755
index 6b901ae..0000000
--- a/P1/run.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-make && cp mapper solutionexe/mapper && cp mapreduce solutionexe/mapreduce && cd solutionexe/ && make run && cp mapper.good mapper && cp mapreduce.good mapreduce && cd ..
diff --git a/P1/solutionexe/mapper.good b/P1/solutionexe/mapper.good
deleted file mode 100755
index 63e089d..0000000
--- a/P1/solutionexe/mapper.good
+++ /dev/null
Binary files differ
diff --git a/P1/solutionexe/mapreduce.good b/P1/solutionexe/mapreduce.good
deleted file mode 100755
index 402e9af..0000000
--- a/P1/solutionexe/mapreduce.good
+++ /dev/null
Binary files differ
diff --git a/P1/solutionexe/reducer.good b/P1/solutionexe/reducer.good
deleted file mode 100755
index 58e0ec4..0000000
--- a/P1/solutionexe/reducer.good
+++ /dev/null
Binary files differ
diff --git a/P1/src/mapreduce.c b/P1/src/mapreduce.c
index 9efccf7..19cf937 100644
--- a/P1/src/mapreduce.c
+++ b/P1/src/mapreduce.c
@@ -11,6 +11,10 @@ int main(int argc, char *argv[]) {
// ###### DO NOT REMOVE ######
int nMappers = strtol(argv[1], NULL, 10);
int nReducers = strtol(argv[2], NULL, 10);
+ if (nMappers < nReducers) {
+ printf("Number of mappers must be greater than or equal to the number of reducers.\n");
+ exit(2);
+ }
char *inputFile = argv[3];
// ###### DO NOT REMOVE ######
@@ -34,14 +38,24 @@ int main(int argc, char *argv[]) {
char numMap[10];
sprintf(numMap, "%d", i);
execl("./mapper", "./mapper", &numMap, NULL);
+ printf("Mapper execution failed! Make sure \"mapper\" exists in the directory.\n");
+ return 4;
+ } else if (mapperPid == -1) {
+ printf("Fork failed!\n");
+ return 1;
}
}
for (int i = 0; i <= nMappers; i++) {
//Hopefully this works
- wait(NULL);
+ int waitError = wait(NULL);
+ if (waitError == -1)
+ {
+ printf("Wait failed!\n");
+ return 5;
+ }
}
-
+printf("Not stuck here.\n");
// ###### DO NOT REMOVE ######
// shuffle sends the word.txt files generated by mapper
@@ -53,7 +67,7 @@ int main(int argc, char *argv[]) {
}
sleep(1);
-
+printf("Not stuck here.\n");
pid_t reducerPid;
for (int i = 1; i <= nReducers; i++) {
@@ -62,12 +76,21 @@ int main(int argc, char *argv[]) {
char numRed[10];
sprintf(numRed, "%d", i);
execl("./reducer", "./reducer", &numRed, NULL);
+ printf("Reducer execution failed! Make sure \"reducer\" exists in the directory.\n");
+ return 3;
+ } else if (reducerPid == -1) {
+ printf("Fork failed!\n");
+ return 2;
}
}
for (int i = 0; i <= nReducers; i++) {
//Maybe this works too?
- wait(NULL);
+ int waitError = wait(NULL);
+ if (waitError == -1) {
+ printf("Wait failed!\n");
+ return 5;
+ }
}
return 0;