Hadoop API VS.Hadoop Streaming - PullRequest
       22

Hadoop API VS.Hadoop Streaming

4 голосов
/ 20 декабря 2011

В чем разница, когда мы запускаем программу hadoop с помощью jar-файла Streamer и когда мы запускаем ее с файлом jar программы?

Ответы [ 5 ]

5 голосов
/ 20 декабря 2011

Обычно у нас есть пара Map / Reduce, написанная на java..a карта, которая разбивает набор данных на независимые порции, и сокращение, которое объединяет результаты для выполнения некоторого полезного анализа ... Потоковая передача Hadoop - это утилита, которая позволяет нам писать Map / Reduce приложения в any language(like Ruby/Python/Bash etc.), способные работать с STDIN(for input) и STDOUT(for output)!

0 голосов
/ 06 июля 2016

если вы программируете на Java, то вы регулярно компилируете и отправляете задания.Если вы хотите использовать другие языки, такие как Python или .NET, вы можете разрабатывать программы на этих языках, а потоковый jar действует как мост, потому что эти языки не являются родным hadoop, который является java

Shahzad

0 голосов
/ 09 октября 2015

Преимущества Streaming:

  1. Потоковая передача Hadoop позволяет отправлять задания Map Reduce на предпочитаемые языки сценариев, такие как Ruby, Python, Pig и т. Д. Сценарий может быть переведен в несколько заданий Map Reduce. Вам не нужно изучать Java.

Недостатки .

  1. Производительность сценариев Hadoop Streaming низкая по сравнению с реализацией Hadoop API с использованием Java. Причина очевидна - сценарий переведен на несколько заданий Map Reduce, и время выполнения задания очень велико, поскольку необходимо выполнить несколько заданий.

Лично мне удобнее использовать Hadoop API с клиентом Partitioner & Combiner , написанный на Java

0 голосов
/ 03 июля 2015

Потоковая передача Hadoop позволяет нам писать карту и сокращать функции на любом языке программирования или сценариев, который поддерживает чтение данных из стандартного ввода и запись в стандартный вывод. Эта функция делает Hadoop Streaming очень гибким и может легко использоваться большим количеством пользователей. R, Python, C ++ или почти любой другой язык. Существует множество параметров, которые можно настроить, например, число картографов, количество редукторов, память jvm, формат ввода, формат вывода и т. Д. Формат ввода по умолчанию для заданий потоковой передачи hadoop - TextInputFormat, который считывает данные одной строкой в время.

Hadoop API В значительной степени связывает вас с Java, но конфигурация и разработка более просты, так как все может быть настроено из самого кода Java. По моему опыту, Java кажется немного быстрее, но потоковая передача может быть довольно близка, когда правильно настроена и используется с правильным языком.

0 голосов
/ 22 декабря 2011

Вы правы, если скажете, что если вы не используете Java, у вас не будет доступных основных функций hadoop. Такие вещи, как ChainMapper и ChainReducer, ChainedJobs и т. П. Недоступны при потоковой передаче. Кроме того, поскольку Hadoop написан на Java, использование Java сделает его быстрее.

Кроме того, теоретически, после создания картографа редуктор не запускается. То, что вы можете видеть в HTML как редукторы, работающие одновременно с перемещением ввода.

...