(1)HMaster SplitLogManager
// get a list for previously failed RS which need log splitting work
// we recover hbase:meta region servers inside master initialization and
// handle other failed servers in SSH in order to start up master node ASAP
Set<ServerName> previouslyFailedServers = this.fileSystemManager
.getFailedServersFromLogFolders();
LogSplit工作经由SSH(ServerShutdownHandler)触发,
M_SERVER_SHUTDOWN (70, ExecutorType.MASTER_SERVER_OPERATIONS)
this.executorService.startExecutorService(ExecutorType.MASTER_SERVER_OPERATIONS,
conf.getInt("hbase.master.executor.serverops.threads", 5));
HMaster每次最多处理 hbase.master.executor.serverops.threads 这么多个SSH,如果启动时有大量的异常Server需要处理时,可以调大这个参数。
(2)HRegionServer SplitLogWorker
https://issues.apache.org/jira/browse/HBASE-9736
this.maxConcurrentTasks =
conf.getInt("hbase.regionserver.wal.max.splitters", DEFAULT_MAX_SPLITTERS);
同时可以获取多个Task来处理。一个Task实际对应一个HLog文件。