Анализ данных Twitter в облаке с помощью Apache Hadoop и Hive

в 9:44, , рубрики: apache hadoop, big data, Excel, open source, twitter, windows azure, Блог компании Microsoft, Облачные вычисления, облачные сервисы

image

В данном руководстве описаны процедуры запроса, изучения и анализа данных Twitter с помощью служб на базе Apache Hadoop для Windows Azure, а также Hive-запрос в Excel. Социальные сети — это главный источник больших данных. Поэтому общедоступные API таких социальных медиа, как Twitter, служат источником полезной информации и помогают лучше понять сетевые тренды.

Руководство состоит из следующих разделов.

  1. Поиск, загрузка, установка и использование Microsoft Analytics для Twitter
  2. Получение фидов Twitter с помощью cURL и Twitter Streaming API
  3. Запрос и настройка нового Hadoop на кластере Windows Azure
  4. Обработка данных Twitter с помощью Hive на Hadoop в кластере Windows
  5. Настройка Hive ODBC и панели Hive в Excel для получения данных Hive

Поиск, загрузка, установка и использование Microsoft Analytics для Twitter

Microsoft Analytics для Twitter доступен для скачивания по следующему адресу: http://www.microsoft.com/download/en/details.aspx?id=26213.

Для работы необходимы приложение Excel 2010 и надстройка PowerPivot, которую можно скачать по адресу http://www.microsoft.com/download/en/details.aspx?id=29074).

clip_image004[4]

Вставьте следующие теги роликов и учетные записи в окно запросов:

#moneyball, @MoneyballMovie, @helpmovie, @BridesmaidsSay, @CONTAGION_movie

Нажмите кнопку

clip_image006[4]

и следуйте инструкциям на экране.

Примечание. В этом разделе Hadoop не используется. Здесь показано, как работать с Twitter Search API и бизнес-аналитикой с функцией самообслуживания в Excel и PowerPivot.

Получение фида Twitter с помощью cURL и Twitter Streaming API

На этом этапе потребуется приложение curl.exe. Загрузите файл curl для своей ОС (например, двоичный файл SSL для 64-разрядной Windows) на странице http://curl.haxx.se/download.html

clip_image008[4]

и распакуйте curl.exe в подходящую папку (например, C:twitterdata).

Скопируйте два файла — gettwitterstream.cmd и twitter_params.txt — из папки Step2GetTwitterFeedUsingCURLAndTwitterStreamingAPI в папку, содержащую curl.exe:

clip_image010[4]

Измените файл twitter_params.txt следующим образом, чтобы отслеживать твиты:

track=moneyball,MoneyballMovie,helpmovie,BridesmaidsSay,CONTAGION_movie

Измените командный скрипт gettwitterstream.cmd, вставив свое имя пользователя в Twitter вместо USER и пароль вместо PASSWORD на следующей строке:

curl -d @twitter_params.txt -k stream.twitter.com/1/statuses/filter.json -uUSER:PASSWORD >>twitter_stream_seq.txt

Запустите скрипт gettwitterstream.cmd из командной строки следующим образом:

clip_image012[4]

На экране появится примерно такая информация:

clip_image014[4]

Чтобы завершить работу скрипта, нажмите Ctrl+C. Затем можно переименовать файл и повторно запустить скрипт.

Запрос и настройка нового Hadoop на кластере Windows Azure

На этом этапе необходим доступ к CTP для службы на базе Apache Hadoop в Windows Azure. Перейдите на веб-сайт https://www.hadooponazure.com/ и щелкните ссылку invitation. Если у вас имеется доступ, нажмите кнопку Sign in.

clip_image016[4]

Запросите новый кластер. Ниже приведен пример большого кластера под названием mailboxpeak. Введите имя пользователя и пароль, а затем нажмите кнопку Request cluster. По всем вопросам обращайтесь к руководству «Инструкции и часто задаваемые вопросы по службе на базе Apache Hadoop для Windows Azure».

clip_image018[4]

Откройте порты FTPS и ODBC, чтобы получить доступ к серверу.

clip_image020[4]

clip_image022[4]

Щелкните значок Interactive Console.

clip_image024[4]

Создайте каталог для текстового файла Twitter на HDFS с помощью следующей команды Javascript:

js> #mkdir /example/data

Чтобы загрузить пробные текстовые файлы, выполните следующие команды:

js> #put
Source: C:hadoopexampledataSample.txt
Destination: /examples/data

Для загрузки больших (несжатых) текстовых файлов непосредственно на HDFS понадобится файл curl.exe. Если этого файла нет, загрузите его согласно инструкциям шага 2 и распакуйте в подходящую папку, например сюда: C:hadoopexampledata. Затем откройте PowerShell, перейдите в C:hadoopexampledata и вставьте следующий скрипт PowerShell для FTPS в текстовый файл SampleData (SampleData.txt):

C:hadoopexampledata>

#----- begin curl ftps to hadoop on azure powershell example —
#------ Replace XXXXXXX with the appropriate servername / username / password

$serverName = "XXX.cloudapp.net"; $userName = "XXXX";
$password = "XXXXXXXX";
$fileToUpload = "SampleData.txt"; $destination = "/example/data/";
$Md5Hasher = [System.Security.Cryptography.MD5]::Create();
$hashBytes = $Md5Hasher.ComputeHash($([Char[]]$password))
foreach ($byte in $hashBytes) { $passwordHash += "{0:x2}" -f $byte }
$curlCmd = ".curl -k --ftp-create-dirs -T $fileToUpload -u $userName"
$curlCmd += ":$passwordHash ftps://$serverName" + ":2226$destination"
invoke-expression $curlCmd

#----- end curl ftps to hadoop on azure powershell example ----

clip_image026[4]

Очень большие файлы необходимо сжимать перед загрузкой. Сжатый файл (с расширением .gz и т. п.) можно загрузить в учетную запись хранилища Windows Azure. С помощью программы CloudXplorer (http://clumsyleaf.com/products/cloudxplorer) загрузка файла выполняется следующим образом:

Настроив учетную запись хранилища Windows Azure и установив CloudXplorer, перейдите на портал Windows Azure и скопируйте основной ключ доступа своей учетной записи хранилища, нажав кнопку View в правом столбце.

clip_image028[4]

Затем откройте CloudXplorer и выберите File -> Manage Accounts. Откроется новое диалоговое окно. Нажмите New и выберите Windows Azure account.

clip_image030[4]

В следующем диалоговом окне вставьте имя учетной записи хранилища, которое вы указали при настройке учетной записи хранилища (например, hadoopdemo), и скопированный ключ доступа.

clip_image032[4]

В новой учетной записи хранилища создайте контейнер (в Windows Azure каталоги называются контейнерами).

clip_image034[4]

Загрузите (скопируйте) ZIP-архив в контейнер (в нашем случае контейнер называется data).

clip_image036[4]

Настройте учетную запись хранилища больших двоичных объектов Windows Azure, щелкнув значок Manage Data

clip_image038[4]

рядом с Set up ASV.

clip_image040[4]

Сейчас вам понадобится имя учетной записи Windows Azure Storage Account Name (в нашем случае это hadoopdemo) и основной ключ доступа.

clip_image042[4]

Введите имя учетной записи хранилища Windows Azure и основной ключ доступа, а затем нажмите Save settings.

clip_image044[4]

Обработка данных Twitter с помощью Hive на Hadoop вкластере Windows

Перейдите на веб-сайт https://www.hadooponazure.com/. Подключитесь к головному узлу Hadoop, нажав Remote Desktop.

clip_image046[4]

Нажмите кнопку Open.

clip_image048[4]

Войдите на удаленный сервер с именем и паролем, которые вы использовали при создании кластера на шаге 3.

Создайте каталог (например, c:Appsdistexampledata) на сервере головного узла удаленного Hadoop (на стороне NTFS), используя Проводник или командную строку, а затем перейдите в него.

Скопируйте все содержимое папки CopyToHeadnode в новый каталог. Сюда же входит файл HiveUDFs.jar (пользовательские функции для запросов Hive), gzip, а также текстовые файлы запросов Hive. Кроме того, скопируйте файл All steps to run from the Hadoop Command Shell.txt, чтобы упростить выполнение последней части данного этапа.

clip_image050[4]

RDP поддерживает копирование между размещенным и удаленным рабочим столом. Иногда Hadoop распаковывает файл gzip во время его копирования в HDFS.

Откройте Hadoop Command Shell на удаленном рабочем столе.

clip_image052[4]

Перейдите в каталог c:Appsdistexampledata.

clip_image054[4]

Скопируйте файл twitterstreamseq8.gz из хранилища Windows Azure в папку c:Appsdistexampledata (на стороне NTFS). Местоположение файла в учетной записи хранилища зависит от ассоциаций хранилища Windows Azure, заданных на шаге 3. В нашем случае контейнер называется data и отображается в строке под asv://:

c:Appsdistexampledata>hadoop fs -copyToLocal asv://data/twitter_stream_seq8.txt.gz twitter_stream_seq8.txt.gz

Распакуйте архив twitterstreamseq8.gz в папку c:Appsdistexampledata, как показано ниже (вам понадобится программа gzip.exe, которую нужно скачать с веб-сайта http://www.gzip.org/ и поместить в каталог, откуда выполняется команда):

c:Appsdistexampledata> gzip -d -N twitter_stream_seq8.txt.gz

Примечание. Иногда Hadoop выполняет распаковку файла при копировании в HDFS, однако это работает только для архивов .bz2 (bzip2) http://bzip.org/:

hadoop fs -copyFromLocal twitter_stream_seq8.txt.gz /example/data/twitter_stream_seq8.txt

Скопируйте twitterstreamseq8.txt из папки c:Appsdistexampledata в HDFS следующей командой:

c:Appsdistexampledata>

hadoop fs -copyFromLocal twitter_stream_seq8.txt /example/data/twitter_stream_seq8.txt

1. Убедитесь, что файл на HDFS обновился. Для этого откройте

 clip_image056[4]

и перейдите в папку /example/data.

clip_image058[4]

Несколько следующих действий содержатся в файле All steps to run from the Hadoop Command Shell.txt, который вы скопировали в головной узел.

Создайте и загрузите twitter_raw следующей командой:

c:appsdistexampledata>hive -v -f load_twitter_raw.txt

clip_image060[4]

Таблица будет создана в каталоге /hive/warehouse на стороне HTFS:

clip_image062[4]

Это можно проверить с помощью Hive, набрав команды c:Appsdistexampledata>hive и Hive>show tables;, как показано ниже.

clip_image064[4]

Для выхода из Hive используйте команду hive>quit;. Создайте и загрузите twitter_temp следующим образом:

c:appsdistexampledata>hive -v -f create_twitter_temp.txt

При наличии 4 узлов эта операция займет более 20 минут, а при наличии 8 узлов — 8 минут 55 секунд. Проверьте ход выполнения в следующем окне:

clip_image066[4]

Щелкните задание, чтобы просмотреть подробности и ход выполнения. Операция может занять более 20 минут.

clip_image068[4]

Отслеживать выполнение задания можно также с помощью Hadoop Command Shell:

clip_image070[4]

Это можно проверить с помощью Hive, набрав команды c:Appsdistexampledata>hive и Hive>show tables:

clip_image072[4]

Создайте и загрузите twitter_stream следующим образом:

c:appsdistexampledata>hive -v -f create_twitter_stream.txt

При наличии 4 узлов эта операция займет более 60 минут, а при наличии 8 узлов — 31 минуту 54 секунды. Отслеживайте ход выполнения, как описано выше. Создайте и загрузите twitterstreamsample следующей командой:

c:appsdistexampledata>hive -v -f create_twitter_stream_sample.txt

Отслеживайте ход выполнения, как описано выше. Создайте и загрузите twitter_movies следующим образом:

c:appsdistexampledata>hive -v -f create_twitter_movies.txt

Отслеживайте ход выполнения, как описано выше. Создайте и загрузите twittermoviesvw с помощью команды:

c:appsdistexampledata>hive -v -f create_twitter_movies_vw.txt

Отслеживайте ход выполнения, как описано выше.

Настройка Hive ODBC и панели Hive в Excel для получения данных Hive

Этот раздел взят из документа «Инструкции и часто задаваемые вопросы по службе на базе Apache Hadoop для Windows Azure», который находится на плитке загрузок

clip_image074[4]

в Hadoop на портале Windows Azure.

clip_image076[4]

clip_image078[4]

Оттуда же можно скачать HiveODBCSetup для 64- и 32-разрядных версий Excel.

Как подключиться к надстройке Hive для Excel в Hadoop на платформе Windows Azure с помощью HiveODBC

Важнейшей функциональной возможностью решения Microsoft для обработки больших данных является интеграция Hadoop с компонентами бизнес-аналитики Microsoft. Наглядный тому пример — подключение Excel к фреймворку хранилища данных Hive в кластере Hadoop. В этом разделе показано, как использовать Excel через драйвер Hive ODBC.

Установка драйвера Hive ODBC

Чтобы начать установку, загрузите 64-разрядную версию драйвера Hive ODBC (файл MSI) из Hadoop на портале Windows Azure. Дважды щелкните HiveODBCSetupx64.msi для запуска установки. Прочитайте лицензионное соглашение. Если вы согласны с его условиями, нажмите I accept и затем Install.

clip_image080[4]

После завершения установки щелкните Finish, чтобы выйти из мастера.

Установка надстройки Hive для Excel

Для установки этой надстройки требуются 64-разрядные версии драйвера Hive ODBC и приложения Excel 2010. Запустите 64-разрядную версию Excel 2010. Система предложит установить расширение HiveExcel. Нажмите Install. Когда расширение будет установлено, щелкните вкладку Данные в Microsoft Excel 2010. Откроется панель Hive, как показано на следующем снимке экрана:

clip_image082[4]

Создание источника данных Hive ODBC для Excel

Выберите Start ->Control Panel, чтобы запустить панель управления Microsoft Windows. В окне панели управления выберите System and Security -> Administrative Tools ->Data Sources (ODBC). Откроется диалоговое окно ODBC Data Source Administrator.

clip_image084[4]

В диалоговом окне ODBC Data Source Administrator выберите вкладку System DSN. Нажмите Add, чтобы создать источник данных. Выберите драйвер HIVE в списке драйверов ODBC.

clip_image086[4]

Нажмите Finish. Откроется диалоговое окно ODBC Hive Setup, как показано на снимке экрана ниже.

clip_image088[4]

Введите имя в поле Data Source Name. Например, MyHiveData. В поле Host введите имя узла кластера, созданного на портале. Например, myhadoopcluster.cloudapp.net. Укажите имя пользователя для аутентификации на портале.

Нажмите OK, чтобы сохранить источник данных Hive. Нажмите OK, чтобы закрыть диалоговое окно ODBC Data Source Administrator.

Получение данных Hive в Excel

Запустите 64-разрядную версию Excel 2010. Затем перейдите на вкладку Data. Щелкните Hive Panel, чтобы открыть панель Hive в Excel. В раскрывающемся списке Select or Enter Hive Connection укажите имя источника данных, созданного ранее.

Система попросит ввести пароль для аутентификации в кластере на портале. Введите пароль и имя пользователя. В раскрывающемся списке Select the Hive Object to Query выберите hivesampletable [Table]. Отметьте флажками все столбцы в таблице. Панель Hive Query должна выглядеть примерно так:

clip_image090[4]

Нажмите Execute Query.

clip_image092[5]

Для обработки данных из нашего примера нужно выполнить запрос следующего вида:

Select * from twittermoviesvw limit 20

Выводы

В данном руководстве мы рассмотрели, как запрашивать, изучать и анализировать данные из Twitter с помощью Hadoop на Windows Azure и запроса Hive в Excel.

Автор: XaocCPS

Поделиться

* - обязательные к заполнению поля