какая технология доступна для потоковой передачи данных из социальных сетей в Hadoop?

я ищу технологии, которые я могу использовать для потоковой передачи данных из социальных сетей в hadoop. я искал и нашел эти технологии

  1. Флюм.
  2. Буря.
  3. Кафка.

какое средство лучше? и почему? кто-нибудь знаком с некоторыми другими инструментами?


person Shlomi Hassan    schedule 30.09.2013    source источник


Ответы (3)


Скорее всего, вы захотите использовать Flume, так как он создан для работы с hdfs. Однако, как и во всем, это зависит.

Kafka — это, по сути, система очередей, которая обычно используется для сохранения данных в случае сбоя в вашей аналитической архитектуре. Если это похоже на то, что вам нужно, возможно, стоит изучить RabbitMQ, ZeroMQ или, возможно, Kestrel .

Storm используется для обработки сложных событий. Если вы используете storm, вы будете использовать ZeroMQ под капотом и, вероятно, вам придется настроить spout, подключенный к kafka или RabbitMQ. ЕСЛИ вам нужно выполнить сложную обработку данных перед сохранением, это может быть правильным вариантом. Вы также можете использовать другие параметры, такие как spark. Я склонен предложить шторм исключительно из личных предпочтений. Я слышал, что linkedin также выпускает фреймворк обработки сложных событий в реальном времени, но я не могу вспомнить его название. Я обновлю пост, когда найду его.

С другой стороны, если вы задаете этот вопрос, это может быть потому, что вы еще не построили эту штуку. Если это так, вы можете захотеть изучить что-то другое, кроме hadoop, если вам нужна потоковая передача. Экосистема быстро расширяется, и, вероятно, есть много способов делать то, что вы хотите делать.

person Peter Klipfel    schedule 30.09.2013

Apache Kafka — это распределенная система обмена сообщениями. Вкратце, это похоже на то, как вы отправили (опубликовали) несколько сообщений в очередь Kafka с помощью производителя KafKa, а на другом конце вы использовали их с помощью потребителя Kafka (подписчика). Сообщения/каналы можно разделить на категории под названием Topic. Теперь вы можете запускать Kafka в кластере, что делает его очень масштабируемым и расширяемым без простоев.

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

Производительность Kafka практически не зависит от размера данных, поэтому сохранение больших объемов данных не является проблемой.

Ознакомьтесь с документом, чтобы лучше понять его.

Теперь Storm представляет собой очень масштабируемую отказоустойчивую распределенную вычислительную систему, которую можно легко интегрировать с любые очереди (например, Kafka) или базы данных (HDFS/Cassandra и т. д.). Таким образом, вы можете передавать свои сообщения в штормовой кластер для дальнейшей обработки в соответствии с вашими требованиями. Существует что-то под названием KafkaSpout, которое обеспечивает бесшовную интеграцию между storm и кафка.

Вам также следует взглянуть на загрузчик Kafka-hadoop @github, который создает Hadoop Job for incremental loading messages from Kafka topics onto hdfs with multiple file output semantics

Также, как сказал @Peter Klipfel, что: вы можете захотеть изучить что-то другое, кроме Hadoop, если вам нужна потоковая передача. Вы также можете проверить наличие других доступных альтернатив, таких как Apache Cassandra отлично работает с потоковой передачей данных с очень низкой задержкой.

person user2720864    schedule 05.10.2013
comment
@ShlomiHassan Если вы используете kafka, есть связанный camus -- проект, созданный специально для kafka -› конвейер hdfs. - person om-nom-nom; 14.10.2013
comment
Могу я рассказать вам об использовании Камю с Кафкой? у меня проблемы с использованием camus с моей kafka 0.8 в дистрибутиве hortonworks 2.0.6 - person Shlomi Hassan; 30.01.2014

Я думаю, это зависит от того, откуда вы извлекаете данные и что вы пытаетесь с ними сделать.

Альтернативой является использование IBM Streams, где вы можете извлекать данные непосредственно из потоков социальных сетей и сохранять их в различных хранилищах данных по вашему выбору.

Например, вы можете использовать набор инструментов streamsx.social отсюда: https://github.com/IBMStreams/streamsx.social, который позволяет получать твиты непосредственно из HTTP-потока.

Как только вы получаете данные в Streams, продукт также предоставляет множество адаптеров, которые позволяют хранить потоковые данные в хранилище данных (например, HDFS с использованием streamsx.hdfs, HBase с использованием streamsx.hbase).

Я думаю, что еще одним соображением является то, какую аналитику вы делаете с данными социальных сетей. Если вы хотите анализировать социальные данные в потоке до того, как данные будут сохранены, IBM Streams также предоставляет текстовый инструментарий, который позволяет извлекать ценную информацию из неструктурированного текста социальных данных. Вы можете анализировать данные без необходимости их где-либо хранить.

Надеюсь, поможет!

person Samantha Chan    schedule 07.08.2015