This is a distributed system course project (from CS425) involving the building of Distributed Group Memberships, Distributed File System, Map/Reduce etc.
On VM 01, run go run cmd/introducer/introducer.go
.
On all VMs(including VM 01), run go run cmd/member/member.go
.
There are several optional flags:
-introducer: sepcify the address of introducer, defaults to VM 01
-interval: heartbeat interval in seconds
-mode: ALL for All-to-All mode, G for gossip mode
-loss: packet loss rate
-interface: specify network interface, defaults to 'eth0'
-replica: number of file replications on SDFS, defaults to 4
VM 01 is set to be the fixed master for MapleJuice task and assumed to be alive at all time. Here is the example to run one of our task. After member.go
on all nodes are run successfully, on any node, in our own custom cmd line, sequentially run
maple VotingMapper1/VotingMapper1 5 voteMapper1Out CondorcetVotes
juice VotingReducer1/VotingReducer1 5 voteMapper1Out voteReducer1Out 0
maple VotingMapper2/VotingMapper2 5 voteMapper2Out voteReducer1Out
juice VotingReducer2/VotingReducer2 5 voteMapper2Out FinalOutput 1
The final output file, named FinalOutput
, will be on a random node. You may do get FinalOutput FinalOutput
at your current node and then you can view the file at ~/local
.