1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| func WriteToMapperFile(intermediateKeyValue []KeyValue, mapperTaskId, reducerId int) error { tempFile, err := ioutil.TempFile("", "mapper-tmp") if err != nil { log.Printf("ERROR: ioutil.TempFile %s", err) return err }
data, _ := json.Marshal(intermediateKeyValue) _, err = tempFile.Write(data) if err != nil { log.Printf("ERROR: tempFile.Write %s", err) return err } tempFile.Close() intermediateFileName := fmt.Sprintf("mr-%d-%d", mapperTaskId, reducerId) return os.Rename(tempFile.Name(), intermediateFileName) }
func WriteReducerFile(reduceResult []string, reducerId int) error { tempFile, err := ioutil.TempFile("", "reducer-tmp") if err != nil { log.Printf("ERROR: WriteReducerFile ioutil.TempFile %s", err) return err } err = ioutil.WriteFile(tempFile.Name(), []byte(strings.Join(reduceResult, "")), 0644) if err != nil { log.Printf("ERROR: %s", err) return err } tempFile.Close() outFileName := fmt.Sprintf("mr-out-%d", reducerId) return os.Rename(tempFile.Name(), outFileName) }
|