public void loadHFileQueue(AsyncClusterConnection conn, TableName tableName,
    Deque<LoadQueueItem> queue, boolean copyFiles) throws IOException {
    ExecutorService pool = createExecutorService();
    try {
      Multimap<ByteBuffer, LoadQueueItem> regionGroups = groupOrSplitPhase(conn, tableName, pool,
        queue, FutureUtils.get(conn.getRegionLocator(tableName).getStartEndKeys())).getFirst();
      bulkLoadPhase(conn, tableName, queue, regionGroups, copyFiles, null);
    } finally {
      pool.shutdown();
    }
  }
Used by the replication sink to load the hfiles from the source cluster. It does the following,
<ol>
<li>{@link #groupOrSplitPhase(AsyncClusterConnection, TableName, ExecutorService, Deque, List)}
</li>
<li>{@link #bulkLoadPhase(AsyncClusterConnection, TableName, Deque, Multimap, boolean, Map)}
</li>
</ol>
@param conn      Connection to use
@param tableName Table to which these hfiles should be loaded to
@param queue     {@code LoadQueueItem} has hfiles yet to be loaded
hbase-server/src/main/java/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.java