Что касается анализа данных, MapReduce - ваш единственный нативный вариант для запроса данных в HDFS или любой другой поддерживаемой файловой системе Hadoop. Тем не менее, такие решения, как Hive и Pig, создают абстракцию поверх Hadoop, позволяя писать PigLatin или Hive-SQL вместо Java. Pig и Hive компилируются в MapReduce.
Другой альтернативой является использование Потоковой передачи Hadoop , которая позволяет писать MapReduce на любом языке, включая Python, Ruby, bash и т. Д.
Какой вариант лучше, это ваше решение. MapReduce в Java всегда будет самым быстрым, потому что он родной, и у вас есть элементы управления для точной настройки вашей работы. Но Hive и Pig значительно быстрее развиваются и легче поддерживаются. Потоковая передача отлично подходит для людей, которые не любят или не знают Java, но все же хотят большего контроля, чем Hive и Pig, хотя в наши дни Hive и Pig довольно зрелые и очень гибкие.