Учебные материалы

Создание потока данных из Twitter c Spring XD

Что вы создадите

Вы настроете Spring XD (eXtreme Data), создадите поток для просмотра twitter новостей вживую и поместите его в файл.

Что вам потребуется

  • Примерно 15 минут свободного времени
  • JDK 7 и выше

Как проходить этот урок

Если у вас Mac, то следуйте простым инструкциям по установке Homebrew.

Если у вас не Mac или вы не заинтересованы в установке Homebrew, то можете пропустить следующий раздел и перейти к установке Spring XD.

Установка Homebrew

Существует несколько пакетных менеджеров, доступных для Mac OS X, но наиболее популярным является Homebrew. И мы имеем сильную поддержку для Homebrew! Если у вас его ещё нет, используйте эти шаги для его установки:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Этот скрипт установки будет предоставлять дополнительную информацию.

Homebrew имеет базовый набор "formulas" для установки многих инструментов. Он также поддерживает сторонние наборы, называемые "taps". Pivotal имеет tap, который предоставляет несколько инструментов, включая Spring XD, который вы увидите в следующем разделе.

Установка Spring XD

Если вы используете Mac c Homebrew, то процесс довольно простой:

brew tap pivotal/tap && brew install springxd

Вот и всё! Может потребоваться немного времени на установку.

Если вы не используете Homebrew или у вас другая платформа:

  • Загрузите Spring XD 1.0.0.RELEASE
  • Переместите его в любой каталог по вашему усмотрению и распакуйте. Для удобства, мы будем ссылаться на расположение этого каталога как $XD_INSTALL_DIR

Запуск Spring XD

Для запуска Spring XD:

$XD_INSTALL_DIR/xd/bin/xd-singlenode
singlenode является простейшим режимом Spring XD и больше подходит для демонстрационных целей. Более подробную информацию смотрите на странице wiki.

Вы должны увидеть следующее:

 _____                           __   _______
/  ___|          (-)             \ \ / /  _  \
\ `--. _ __  _ __ _ _ __   __ _   \ V /| | | |
 `--. \ '_ \| '__| | '_ \ / _` |  / ^ \| | | |
/\__/ / |_) | |  | | | | | (_| | / / \ \ |/ /
\____/| .__/|_|  |_|_| |_|\__, | \/   \/___/
      | |                  __/ |
      |_|                 |___/
1.0.0.RELEASE                    eXtreme Data

Started : SingleNodeApplication
Documentation: https://github.com/spring-projects/spring-xd/wiki

В другом окне терминала запустите оболочку управления Spring XD:

$XD_INSTALL_DIR/shell/bin/xd-shell

это приведет к:

 _____                           __   _______
/  ___|          (-)             \ \ / /  _  \
\ `--. _ __  _ __ _ _ __   __ _   \ V /| | | |
 `--. \ '_ \| '__| | '_ \ / _` |  / ^ \| | | |
/\__/ / |_) | |  | | | | | (_| | / / \ \ |/ /
\____/| .__/|_|  |_|_| |_|\__, | \/   \/___/
      | |                  __/ |
      |_|                 |___/
eXtreme Data
1.0.0.RELEASE | Admin Server Target: http://localhost:9393
Welcome to the Spring XD shell. For assistance hit TAB or type "help".
xd:>

Используя оболочку Spring XD, создайте twitter-поток:

xd:> stream create --name twittersearchjava --definition "twittersearch --consumerKey=afes2uqo6JAuFljdJFhqA --consumerSecret=0top8crpmd1MXGEbbgzAwVJSAODMcbeAbhwHXLnsg --query='java' | file" --deploy

Здесь вы создаете stream, состоящий из source и sink. В дополнение к созданию определения потока, вы также разворачиваете поток, используя опцию --deploy.

  • Поток назван как twittersearchjava
  • Источник twittersearch, используя учетные данные Twitter API, запрашивает ключ java
  • Результаты помещаются в file, по умолчанию - в /tmp/xd/output/[streamName].out

В другом окне терминала:

$ cd /tmp/xd/output
$ tail -f twittersearchjava.out

Spring XD подхватывает данные в режиме реального времени из Twitter о java и записывает их в twittersearchjava.out. Вы должны видеть твиты в виде JSON. Пока Spring XD запущен и поток развернут, заполнение файла будет продолжаться все большим количеством данных. Вы можете остановить поток отменив развертывание в оболочке Spring XD:

xd:>stream undeploy twittersearchjava

Итог

Поздравляем! Вы только что установили Spring XD и создали поток, подхватывающий новости из Twitter в реальном времени и помещающий их в файл.

С оригинальным текстом урока вы можете ознакомиться на spring.io.

comments powered by Disqus