class MapReduce::MapLog
Constants
- MAX_BUFFER_SIZE
Attributes
log_folder[R]
Public Class Methods
new(log_folder, task)
click to toggle source
# File lib/map_reduce/map_log.rb, line 7 def initialize(log_folder, task) @task = task || "default" @log_folder = File.join(log_folder, @task) @log = "" @log_size = 0 end
Public Instance Methods
<<(str)
click to toggle source
# File lib/map_reduce/map_log.rb, line 14 def <<(str) @log_size += str.bytesize @log << str << "\n" flush if @log_size >= MAX_BUFFER_SIZE end
flush()
click to toggle source
# File lib/map_reduce/map_log.rb, line 20 def flush unless @log.empty? log_file << @log log_file.flush @log.clear @log_size = 0 end end
log_file()
click to toggle source
# File lib/map_reduce/map_log.rb, line 41 def log_file @log_file ||= begin fn = File.join(@log_folder, "mapper.log") FileUtils.mkdir_p(@log_folder) File.open(fn, "a") end end
reset()
click to toggle source
# File lib/map_reduce/map_log.rb, line 29 def reset flush if @log_file map_fn = File.path(@log_file) @log_file.close reduce_fn = File.join(@log_folder, "reducer.log") File.rename(map_fn, reduce_fn) @log_file = nil reduce_fn end end