Currently, this is hardcoded, with the assumption that it is used in map/reduce: (HBaseTable.java)
But in some cases, this needs better fine-tuning. For example, when scanning an indexed table, we scan the index, then perform a get() for each row found in the index. If gets are slow(ish), then 1000 gets can take longer than the server side HBase scanner timeout, and the 1001st call to next() will fail. In this case, we would want a much smaller client cache, say 100 or 200.
The Table API should have a way to set this per scanner instance.