private void createOutputSinkAndEntryBuffers() {
    PipelineController controller = new PipelineController();
    if (this.hfile) {
      this.entryBuffers = new BoundedEntryBuffers(controller, this.bufferSize);
      this.outputSink = new BoundedRecoveredHFilesOutputSink(this, controller, this.entryBuffers,
        this.numWriterThreads);
    } else if (this.splitWriterCreationBounded) {
      this.entryBuffers = new BoundedEntryBuffers(controller, this.bufferSize);
      this.outputSink = new BoundedRecoveredEditsOutputSink(this, controller, this.entryBuffers,
        this.numWriterThreads);
    } else {
      this.entryBuffers = new EntryBuffers(controller, this.bufferSize);
      this.outputSink =
        new RecoveredEditsOutputSink(this, controller, this.entryBuffers, this.numWriterThreads);
    }
  }
Setup the output sinks and entry buffers ahead of splitting WAL.
hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java