POC для Hadoop в режиме реального времени

У меня небольшая проблема. Я хочу узнать о Hadoop и как я могу использовать его для обработки потоков данных в реальном времени. Как таковой, я хочу построить значимый POC

Я также хотел бы упомянуть, что я ограничен в аппаратных ресурсах. Только мой ноутбук и я :) я знаю основы Hadoop и написал 2-3 основной мистер Джобс. Я хочу сделать что-то более значимое или реальный мир.

пожалуйста, предложите.

спасибо заранее.

7 ответов


Я хотел бы отметить несколько вещей.

Если вы хотите сделать POC только с 1 ноутбуком, нет смысла использовать Hadoop.

кроме того, как сказали другие люди, Hadoop не предназначен для применения в реальном времени, потому что есть некоторые накладные расходы при выполнении заданий Map/Reduce.

тем не менее, Cloudera выпустила Импала, который работает с экосистемой Hadoop (в частности хранилищу Hive) для достижения производительности в реальном времени. Помните, что, чтобы достигните этого, он не генерирует карты / сокращает задания и в настоящее время находится в бета-версии, поэтому используйте его осторожно.

поэтому я бы действительно посоветовал пойти в Impala, чтобы вы все еще могли использовать экосистему Hadoop, но если вы также рассматриваете альтернативы, вот несколько других фреймворков, которые могут быть полезны:

  • Друид: был открыт с помощью MetaMarkets. Выглядит интересно, хотя я сам им не пользовался.
  • шторм : никакой интеграции с HDFS он просто обрабатывает данные по мере их поступления.
  • HStreaming интеграция с Hadoop.
  • Компания Yahoo С4 : кажется, довольно близко к шторму.

в конце концов, я думаю, что вы действительно должны проанализировать свои потребности и посмотреть, нужно ли использовать Hadoop, потому что он только начинается в реальном времени. Есть несколько других проектов, которые могут помочь вам достичь производительности в реальном времени.


Если вы хотите идеи проектов для демонстрации, я предлагаю посмотреть на этой ссылке. Вот несколько примеров:

  • Финансы/Страхование
    • классифицируйте инвестиционные возможности как хорошие или нет, например, на основе показателей отрасли/компании, разнообразия портфеля и валютного риска.
    • классифицируйте операции с кредитными картами как действительные или недействительные на основе, например, местоположения транзакции и владельца кредитной карты, даты, суммы, купленного предмета или услуги, истории транзакций и подобные сделки.
  • Биология/Медицина
    • классификация белков по структурным или функциональным классам
    • диагностическая классификация, например, опухоли рака на основе изображений
  • интернет
    • классификация и ранжирование документов
    • классификация вредоносных программ, электронная почта / твит / веб-спам классификация
  • производственные системы (например, в энергетика или нефтехимия)
    • классифицировать и обнаруживать ситуации (например, сладкие пятна или ситуации риска) на основе реальных и исторических данных от датчиков

Если вы хотите запачкать руки на многообещающие streaming framework, попробуйте bdas SPARK streaming. Внимание, это еще не выпущено, но вы можете играть в своем ноутбуке с версией github(https://github.com/mesos/spark/tree/streaming) Есть много образцов, чтобы вы начали.

кроме этого имеет много преимуществ по сравнению с существующими фреймворками, 1. Это дает вам возможность комбинировать в реальном времени и пакетных вычислений в один стек 2. Это даст вам REPL, где вы можете попробовать свои специальные запросы в интерактивном режиме. 3. Вы можете запустить это в своем ноутбуке в локальном режиме. Есть много других преимуществ, но этих трех, я думаю, будет достаточно, чтобы начать работу.

возможно, вам придется изучить scala, чтобы попробовать REPL : - (

для получения дополнительной информации проверьтеhttp://spark-project.org/


Hadoop-это платформа с высокой пропускной способностью, подходящая для пакетных процессов. Если вы заинтересованы в обработке и анализе огромных наборов данных в режиме реального времени, пожалуйста, посмотрите в twitter storm.


одна из классных проблем, которая, я уверен, является самой реальной, чем что-либо еще. Торговля Опционами. Ключ здесь-следить за новостями, тенденциями в twitter, facebook, youtube, а затем определять кандидатов для возможного PUT или CALL. Вам понадобится хороший навык и продуманная реализация Mahout с Nutch / Lucene, а затем использовать трендовые данные, чтобы понять текущую ситуацию, и система должна рекомендовать ставки (варианты).


Я явно предвзят, но я бы также рекомендовал посмотреть на GridGain для чего-нибудь реального времени. GridGain - это платформа данных в памяти, которая обеспечивает хранилище данных ACID NoSQL и быстрое MapReduce в памяти.


Я думаю, что вы можете запустить POC, например, онлайн/рекурсивный алгоритм регрессии в mapreduce. Но помните, что это просто докажет, что ваше "правило обучения" работает. Возможно (не пробовал), вы сможете использовать результаты в реальном времени при помощи проставок, чтобы записать их во временный файл, который может быть прочитан другим потоком.

также Mahout позволяет установить базу данных в нескольких различных SequenceFiles. Вы можете использовать это для имитации онлайн-потока и классифицировать / кластеризировать набор данных "онлайн". Вы даже можете скопировать часть данных в папку с другими данными до запуска алгоритма. Mahout в действии подробнее, как это сделать.

посмотрите, подходит ли вам один из следующих наборов данных: http://archive.ics.uci.edu/ml/datasets.html


Я искал что-то вроде этого -

https://www.kaggle.com/competitions

Это хорошо определенные проблемы, многие из них большие проблемы с данными. И некоторые из них требуют обработки в реальном времени.

но спасибо всем, кто ответил.