@Override
    public List<InputSplit> getSplits(JobContext job) throws IOException {
      // generate splits
      List<InputSplit> splitList = new ArrayList<>();

      for (FileStatus file : listStatus(job)) {
        if (file.isDirectory()) {
          continue;
        }
        Path path = file.getPath();
        FileSystem fs = path.getFileSystem(job.getConfiguration());
        FSDataInputStream fileIn = fs.open(path);
        LineReader in = new LineReader(fileIn, job.getConfiguration());
        int lineLen;
        while (true) {
          Text lineText = new Text();
          lineLen = in.readLine(lineText);
          if (lineLen <= 0) {
            break;
          }
          Matcher m = LINE_PATTERN.matcher(lineText.toString());
          if ((m != null) && m.matches()) {
            TableName tableName = TableName.valueOf(m.group(1));
            int startRow = Integer.parseInt(m.group(2));
            int rows = Integer.parseInt(m.group(3));
            int totalRows = Integer.parseInt(m.group(4));
            int clients = Integer.parseInt(m.group(5));
            boolean flushCommits = Boolean.parseBoolean(m.group(6));
            boolean writeToWAL = Boolean.parseBoolean(m.group(7));
            boolean useTags = Boolean.parseBoolean(m.group(8));
            int noOfTags = Integer.parseInt(m.group(9));

            LOG.debug("tableName=" + tableName + " split[" + splitList.size() + "] " + " startRow="
              + startRow + " rows=" + rows + " totalRows=" + totalRows + " clients=" + clients
              + " flushCommits=" + flushCommits + " writeToWAL=" + writeToWAL + " useTags="
              + useTags + " noOfTags=" + noOfTags);

            PeInputSplit newSplit = new PeInputSplit(tableName, startRow, rows, totalRows, clients,
              flushCommits, writeToWAL, useTags, noOfTags);
            splitList.add(newSplit);
          }
        }
        in.close();
      }

      LOG.info("Total # of splits: " + splitList.size());
      return splitList;
    }
InputFormat of Performance Evaluation MapReduce job. It extends from FileInputFormat, want to
use it's methods such as setInputPaths().
hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/PerformanceEvaluation.java