БЫСТРО СЛУЧАЙНЫЕ ЧТЕНИЯ = ПОДГОТОВЛЕННЫЕ данные, сидящие в HBase!
Используйте Hbase для того, что это ...
1. Место для хранения большого количества данных.
2. Место, из которого вы можете делать супер быстрое чтение.
3. Место, где SQL не принесет никакой пользы (используйте Java).
Несмотря на то, что вы можете читать данные из HBase и выполнять все виды агрегатов прямо в структурах данных Java перед возвратом агрегированного результата, лучше оставить вычисления в mapreduce. Судя по вашим вопросам, вы хотите, чтобы исходные данные для вычислений находились в HBase. Если это так, маршрут, который вы хотите выбрать, имеет HBase в качестве исходных данных для задания mapreduce. Сделайте вычисления на этом и верните агрегированные данные. Но опять же, зачем вам читать из Hbase для выполнения задания mapreduce? Просто оставьте данные в таблицах HDFS / Hive и запустите для них задания mapreduce THEN загрузите данные в таблицы Hbase «предварительно подготовленными», чтобы вы могли выполнять супербыстрые случайные чтения из них.