public Scan withStartRow(byte[] startRow, boolean inclusive) {
    if (Bytes.len(startRow) > HConstants.MAX_ROW_LENGTH) {
      throw new IllegalArgumentException("startRow's length must be less than or equal to "
        + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");
    }
    this.startRow = startRow;
    this.includeStartRow = inclusive;
    return this;
  }
Set the start row of the scan.
<p>
If the specified row does not exist, or the {@code inclusive} is {@code false}, the Scanner
will start from the next closest row after the specified row.
<p>
<b>Note:</b> <strong>Do NOT use this in combination with {@link #setRowPrefixFilter(byte[])} or
{@link #setStartStopRowForPrefixScan(byte[])}.</strong> Doing so will make the scan result
unexpected or even undefined.
</p>
@param startRow  row to start scanner at or after
@param inclusive whether we should include the start row when scan
@throws IllegalArgumentException if startRow does not meet criteria for a row key (when length
                                 exceeds {@link HConstants#MAX_ROW_LENGTH})
hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java