Three MapReduce style algorithms for querying statistics related to ingested logs. The aim was to implement various alternatives and comparing threads and processes, considering various types of communications such as pipes and files.
- Clone the repository
git clone https://github.com/NicolasCamachoP/MapReducer.git
- Move to the source files directory
cd /MapReducerThreads/MapReducer
- Compile using the makefile included with
make
Run it with the following arguments:
- Name of the file for data ingest.
- Number of logs that the file contains.
- Number desired of Mappers.
- Number desired of reducers.
- Number of intermediaries. (Just for analogp)
The file provided must have the same structure as the log file located in the same folder.
- analogh Provides a MapReduce implementation based on the use of the fork() method to create processes that can be mappers, intermediaries and reducers. All communication between processes is supported by the use of buffer files, and each step of the query processing is done sequentially.
- analogh Provides a MapReduce implementation based on the use of the pthread library to create threads that can be mappers and reducers. All intra-thread communication is supported by the use of shared memory buffers, and each step of the query processing is done sequentially.
- analogh2 Provides a MapReduce implementation based on the use of the pthread library to create threads that can be mappers and reducers. All intra-thread communication is supported by the use of shared memory buffers and each step of the query processing is managed with the use of semaphore operations using the semaphore.h library, allowing non-sequential processing.
- Nicolás Camacho
- Jhonnier Coronado
- Brayan González