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, а затем использовать трендовые данные, чтобы понять текущую ситуацию, и система должна рекомендовать ставки (варианты).
Я думаю, что вы можете запустить POC, например, онлайн/рекурсивный алгоритм регрессии в mapreduce. Но помните, что это просто докажет, что ваше "правило обучения" работает. Возможно (не пробовал), вы сможете использовать результаты в реальном времени при помощи проставок, чтобы записать их во временный файл, который может быть прочитан другим потоком.
также Mahout позволяет установить базу данных в нескольких различных SequenceFile
s. Вы можете использовать это для имитации онлайн-потока и классифицировать / кластеризировать набор данных "онлайн". Вы даже можете скопировать часть данных в папку с другими данными до запуска алгоритма.
Mahout в действии подробнее, как это сделать.
посмотрите, подходит ли вам один из следующих наборов данных: http://archive.ics.uci.edu/ml/datasets.html
Я искал что-то вроде этого -
https://www.kaggle.com/competitions
Это хорошо определенные проблемы, многие из них большие проблемы с данными. И некоторые из них требуют обработки в реальном времени.
но спасибо всем, кто ответил.