public static void testByStep(String filePath){
		
		miner.setMinSupport(3);
		miner.setWindowSize(26);
		
		// 读取文件
		List<String> logs = getLogs(filePath);
		miner.setInputSequence(logs);
		System.out.println("** input sequence:");
		System.out.println(logs);
		System.out.println();
		
		// 对文件访问日志分段
		miner.cutAccessSequence();
		System.out.println("** input segments:");
		List<List<String>> segments = miner.getInputSegments();
		for(int i = 0; i < segments.size(); i++){
			List<String> segment = segments.get(i);
			for(int j = 0; j < segment.size(); j++){
				System.out.print(segment.get(j) + " ");
			}
			System.out.print(", ");
		}
		System.out.println();
		
		// 获取长度为1的频繁序列
		miner.generateFirstDs();
		// System.out.println(miner.getDs());
		
		// 挖掘：频繁子序列
		HDFSSubseqSuffix ss = miner.getSeqFromDs();
		miner.candidateFreSubsequences(ss.getSubsequence(), ss.getOccurTimes());
		System.out.println("** frequent subsequences:");
		System.out.println(miner.getFreSubsequences());

		// 过滤：Closed频繁子序列
		miner.closedFreSubsequences();
		System.out.println("** closed frequent subsequences:");
		System.out.println(miner.getClosedFreSubsequences());
		
		// 生成：关联规则
		miner.generateRules();
		System.out.println("** rules:");
		for(Map.Entry<String, HDFSRule> entry: miner.getRules().entrySet()){
			System.out.println(entry.getKey());
		}
		System.out.println();
		
		miner.clear();
	}