@InterfaceAudience.Private
  static void splitStoreFile(AsyncTableRegionLocator loc, Configuration conf, Path inFile,
    ColumnFamilyDescriptor familyDesc, byte[] splitKey, Path bottomOut, Path topOut)
    throws IOException {
    // Open reader with no block cache, and not in-memory
    Reference topReference = Reference.createTopReference(splitKey);
    Reference bottomReference = Reference.createBottomReference(splitKey);

    copyHFileHalf(conf, inFile, topOut, topReference, familyDesc, loc);
    copyHFileHalf(conf, inFile, bottomOut, bottomReference, familyDesc, loc);
  }
Split a storefile into a top and bottom half with favored nodes, maintaining the metadata,
recreating bloom filters, etc.
hbase-server/src/main/java/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.java