Я могу привести пример, основанный на моих вариантах использования. Если вы уже храните свои данные в hbase, вы можете написать java-программу, которая сканирует таблицу и что-то делать, а затем записывает вывод в hbase или где-то еще. ИЛИ вы можете использовать mapreduce, чтобы сделать то же самое. Разница заключается в том, что mapreduce будет работать там, где находятся данные, а сетевой трафик используется только для данных результата. У нас есть часовые задания для расчета суммы и среднего значения kpis, а входные данные огромны, но выходные данные для этой задачи крошечны. Если я не использовал mapreduce, мне нужно переместить один час данных по сети, который составляет 18 гб. Но вывод mapreduce - всего 1 мб, и я могу записать его в hbase или файл или где-то еще.
Также MapReduce дает возможность параллельного выполнения задачи, которые вы можете иметь в Java, но почему :)
Имейте в виде, что ПРЯЖА создает задачу карты в соответствии с разделенным подсчетом вашего Hbase таблицы. Поэтому, если вам нужно больше задач карты, разделите таблицу.
Если вы уже храните свои данные в hdo-файлах hadoop, вам повезло, чтение в mapreduce из hdfs намного быстрее, чем чтение из hbase. Также вы можете написать вывод mapreduce в hbase, если хотите.