Ответ 1
Что такое Hadoop?
Представьте себе следующий вызов: у вас много данных, и я имею в виду, по крайней мере, терабайты. Вы хотите преобразовать эти данные или извлечь некоторую информацию и обработать ее в формате, который индексируется, сжимается или "переваривается" таким образом, что вы можете работать с ним.
Hadoop может распараллеливать такое задание обработки и, в данном случае, играет большую роль, заботится о таких вещах, как избыточное хранение файлов, распределение задачи на разных компьютерах в кластере и т.д. (Да, вам нужен кластер, в противном случае Hadoop не сможет компенсировать потерю производительности фреймворка).
Если вы впервые взглянете на экосистему Hadoop, вы найдете 3 больших термина: HDFS (файловая система Hadoop), сам Hadoop (с MapReduce) и HBase (иногда база данных "база данных", которая не подходит)/p >
HDFS - это файловая система, используемая как Hadoop, так и HBase. Это дополнительный слой поверх обычной файловой системы на ваших хостах. HDFS разрезает загруженные файлы в кусках (обычно 64 МБ) и сохраняет их в кластере и заботится о их репликации.
Когда Hadoop получает задание для выполнения, он получает путь к входным файлам на HDFS, желаемом пути вывода, Mapper и Reducer Class. Mapper и Reducer обычно являются Java-классом, переданным в JAR файле (но с Hadoop Streaming вы можете использовать любой инструмент коммандной линии, который вы хотите). Преобразователь вызывается для обработки каждой записи (обычно по строке, например: "return 1, если строка содержит плохое F * слово" ) входных файлов, выход передается редуктору, который объединяет отдельные выходы в желаемый другой формат (например: добавление номеров). Это простой способ получить счетчик "плохих слов".
Прохладная вещь: вычисление отображения выполняется на node: вы обрабатываете куски линейно, и вы перемещаете только полупереваренные (обычно меньшие) данные по сети в редукторы.
И если один из узлов умирает: есть еще один с теми же данными.
HBase использует распределенное хранилище файлов и сохраняет свои таблицы, разделенные на куски кластера. HBase дает, вопреки Hadoop, случайный доступ к данным.
Как вы видите, HBase и Hadoop сильно отличаются от RDMBS. Также в HBase отсутствует множество концепций РСУБД. Моделирование данных с помощью триггеров, подготовленных данных, внешних ключей и т.д. - это не то, что считалось HBase (я не уверен на 100% об этом, так исправляйте меня;-))
Может ли Django интегрироваться с Hadoop?
Для Java это просто: Hadoop написан на Java, и все API есть, готовы к использованию.
Для Python/Django я пока не знаю (но), но я уверен, что вы можете сделать что-то с потоком Hadoop/Jython в качестве последнего средства. Я нашел следующее: Hadoopy и Python в Mappers и редукторы.