Class: MapReduce::MapLog
- Inherits:
-
Object
- Object
- MapReduce::MapLog
- Defined in:
- lib/map_reduce/map_log.rb
Constant Summary collapse
- MAX_BUFFER_SIZE =
2 MB
2 ** 21
Instance Attribute Summary collapse
-
#log_folder ⇒ Object
readonly
Returns the value of attribute log_folder.
Instance Method Summary collapse
- #<<(str) ⇒ Object
- #flush ⇒ Object
-
#initialize(log_folder, task) ⇒ MapLog
constructor
A new instance of MapLog.
- #log_file ⇒ Object
- #reset ⇒ Object
Constructor Details
#initialize(log_folder, task) ⇒ MapLog
Returns a new instance of MapLog.
7 8 9 10 11 12 |
# 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 |
Instance Attribute Details
#log_folder ⇒ Object (readonly)
Returns the value of attribute log_folder.
5 6 7 |
# File 'lib/map_reduce/map_log.rb', line 5 def log_folder @log_folder end |
Instance Method Details
#<<(str) ⇒ Object
14 15 16 17 18 |
# 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 ⇒ Object
20 21 22 23 24 25 26 27 |
# 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 ⇒ Object
41 42 43 44 45 46 47 |
# 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 ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# 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 |