По вашим вопросам, да, все это можно сделать. Как вы к этому подходите, зависит от того, чего именно вы хотите достичь.
1) Ваш основной элемент управления должен был бы разделить задачу. Скорее всего, вы бы поддерживали какой-то список адресов для сканирования, возможно, запускали бы последовательные задачи mapreduce, которые каждый раз читали бы список, разбивали список между мапперами, которые могли бы выполнять сканирование, и писали напрямую в hbase или другого посредника. Они также, вероятно, будут выводить сгенерированные URL для сканирования после следующего, который, в свою очередь, будет отфильтрован до уникальных в фазе сокращения, при этом редуктор выведет список вещей для сканирования следующим. Вам нужно будет вести список недавно просканированных вещей и отфильтровывать их, но это не относится к MR / Hbase.
2) Вы можете использовать формат вывода таблицы для отправки результатов в hbase. Вы также можете просто устанавливать соединения HBase с HTable и писать прямо в свой маппер.
3) Как сказал TheDeveloper, да, с экономией. Его ссылка хорошая.