package org.apache.hadoop.corona;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
public class SessionHistoryManager implements Configurable {
CoronaConf conf = null;
int maxSessionsPerDir = 0;
String historyRoot = null;
@Override
public void setConf(Configuration conf) {
this.conf = new CoronaConf(conf);
initialize();
}
@Override
public Configuration getConf() {
return conf;
}
private void initialize() {
historyRoot = conf.getSessionsLogDir();
maxSessionsPerDir = conf.getMaxSessionsPerDir();
}
public synchronized String getLogPath(String sessionId) {
int dotIdx = sessionId.indexOf('.');
String ts = sessionId.substring(0, dotIdx);
String sessionNum = sessionId.substring(dotIdx + 1);
String dirName =
ts + "." + (Integer.parseInt(sessionNum) / maxSessionsPerDir);
return new Path(historyRoot, dirName).toString();
}
}