Apache HadoopとHiveを使用してクラウド内のTwitterデータを分析する

画像



このガイドでは、Windows Azure用のApache HadoopベースのサービスとExcelのHiveリクエストを使用して、Twitterデータをクエリ、調査、分析する方法について説明します。 ソーシャルネットワークは、ビッグデータの主なソースです。 したがって、Twitterなどのソーシャルメディアの公開APIは、有用な情報のソースとして機能し、ネットワークの傾向をよりよく理解するのに役立ちます。



このマニュアルは、次のセクションで構成されています。



  1. Twitter用Microsoft Analyticsの検索、ダウンロード、インストール、使用
  2. cURLとTwitter Streaming APIを使用してTwitterフィードを取得する
  3. Windows Azureクラスターで新しいHadoopを要求して構成する
  4. WindowsクラスターでHadoop上のHiveを使用してTwitterデータを処理する
  5. ExcelでHive ODBCおよびHiveダッシュボードを構成してHiveデータを取得する


Twitter用Microsoft Analyticsの検索、ダウンロード、インストール、使用



Microsoft Analytics for 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は使用されません。 以下に、ExcelおよびPowerPivotでTwitter Search APIとセルフサービスビジネスインテリジェンスを使用する方法を示します。



cURLとTwitter Streaming APIを使用してTwitterフィードを取得する



この時点で、curl.exeが必要です。 http://curl.haxx.se/download.htmlで、OSのcurlファイル(64ビットWindows用のバイナリバイナリSSLファイルなど)をダウンロードします。



clip_image008[4]



curl.exeを適切なフォルダー(たとえば、 C:\ twitterdata )に解凍します。



2つのファイル( twitter stream.cmdtwitter_params.txtを 取得)を Step2GetTwitterFeedUsingCURLAndTwitterStreamingAPIフォルダーからcurl.exeを含むフォルダーにコピーします。



clip_image010[4]



twitter_params.txtファイルを次のように変更して、ツイートを追跡します。



track = moneyball、MoneyballMovie、helpmovie、BridesmaidsSay、CONTAGION_movie



次の行で、 USERの代わりにTwitterユーザー名、 PASSWORDの代わりにパスワードを挿入して、 get twitter stream.cmdコマンドスクリプトを変更します。



curl -d @ twitter_params.txt -k stream.twitter.com/1/statuses/filter.json -uUSER:パスワード>> twitter_stream_seq.txt



次のように、コマンドラインからget twitter stream.cmdスクリプトを実行します。



clip_image012[4]



次の情報が画面に表示されます。



clip_image014[4]



スクリプトを終了するには、 Ctrl + Cを押します その後、ファイルの名前を変更して、スクリプトを再実行できます。



Windows Azureクラスターで新しいHadoopを要求して構成する



この時点で、Windows Azure上のApache HadoopベースのサービスにはCTPアクセスが必要です。 https://www.hadooponazure.com/にアクセスし、 招待リンクをクリックします。 アクセスできる場合は、[ サインイン ]ボタンをクリックます。



clip_image016[4]



新しいクラスターを要求します。 以下は、メールボックスピークと呼ばれる大きなクラスターの例です。 ユーザー名とパスワードを入力し、[クラスターの要求]をクリックします。 すべての質問については、Apache Hadoop for Windows AzureベースのサービスおよびFAQガイドを参照してください。



clip_image018[4]



FTPSおよびODBCポートを開いてサーバーにアクセスします。



clip_image020[4]



clip_image022[4]



Interactive Consoleアイコンをクリックします。



clip_image024[4]



次のJavascriptコマンドを使用して、HDFSにTwitterテキストファイル用のディレクトリを作成します。



js> #mkdir / example / data



テストテキストファイルをダウンロードするには、次のコマンドを実行します。



js> #put

ソース:C:\ hadoop \ example \ data \ Sample.txt

宛先:/例/データ



大きな(非圧縮)テキストファイルを直接HDFSにダウンロードするには、curl.exeファイルが必要です。 このファイルが存在しない場合は、手順2の指示に従ってダウンロードし、適切なフォルダー(例:C:\ hadoop \ example \ data)に解凍します。 次に、PowerShellを開き、 C:\ hadoop \ example \ dataに移動し、次のFTPS用のPowerShellスクリプトをSampleDataテキストファイル( SampleData.txt )に貼り付けます。



C:\ hadoop \ example \ data>



#----- azure powershellの例でcurl ftpをhadoopに開始-

#------ XXXXXXXを適切なサーバー名/ユーザー名/パスワードに置き換えます



$ 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($ 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



#-----カールftpを終了してAzure PowerShellの例のhadoopに----



clip_image026[4]



ダウンロードする前に、非常に大きなファイルを圧縮する必要があります。 圧縮ファイル(拡張子.gzなど)をWindows Azureストレージアカウントにアップロードできます。 CloudXplorerプログラム( http://clumsyleaf.com/products/cloudxplorer )を使用して、ファイルは次のようにダウンロードされます。



Windows AzureストレージアカウントをセットアップしてCloudXplorerをインストールしたら、Windows Azureポータルに移動し、右側の列の[表示 ]ボタンをクリックして、ストレージアカウントのプライマリパスキーをコピーします。



clip_image028[4]



次に、CloudXplorerを開き、[ ファイル]-> [アカウントの管理]を選択します 。 新しいダイアログボックスが開きます。 [ 新規]をクリックし、[ Windows Azureアカウント]を選択します



clip_image030[4]



次のダイアログボックスで、ボールトアカウントのセットアップ時に指定したボールトアカウントの名前(hadoopdemoなど)とコピーしたアクセスキーを貼り付けます。



clip_image032[4]



新しいストレージアカウントで、コンテナを作成します(Windows Azureでは、ディレクトリはコンテナと呼ばれます )。



clip_image034[4]



ZIPアーカイブをコンテナーにダウンロード(コピー)します(この場合、コンテナーはdataと呼ばれます )。



clip_image036[4]



[データ管理 ]アイコンをクリックして、Windows Azure BLOBストレージアカウントをセットアップします。



clip_image038[4]



ASVのセットアップの横。



clip_image040[4]



ここで、Windows Azure ストレージアカウント名 (この場合はhadoptmo )の名前とメインアクセスキーが必要です。



clip_image042[4]



Windows Azureストレージアカウントとプライマリパスキーの名前を入力し、[ 設定を保存 ]をクリックします



clip_image044[4]



Windowsクラスター でHadoop上のHiveを使用してTwitterデータを処理する



https://www.hadooponazure.com/にアクセスます 。 [ リモートデスクトップ ]をクリックして、Hadoopヘッドノードに接続します



clip_image046[4]



[開く]ボタンをクリックします。



clip_image048[4]



手順3でクラスターを作成したときに使用した名前とパスワードを使用して、リモートサーバーにログインします。



エクスプローラーまたはコマンドラインを使用して、リモートHadoopヘッドノードサーバー(NTFS側)にディレクトリ(たとえば、 c:\ Apps \ dist \ example \ data )を作成し、ナビゲートします。



CopyToHeadnodeフォルダーの内容全体を新しいディレクトリにコピーします。 これには、 HiveUDFs.jarファイル(Hiveクエリ用のユーザー定義関数)、 gzip 、およびHiveテキストクエリファイルも含まれます。 さらに、このステップの最後の部分を簡素化するために、 HadoopコマンドShell.txtから実行するファイルのすべてのステップをコピーします。



clip_image050[4]



RDPは、ホストされたデスクトップとリモートデスクトップ間のコピーをサポートしています。 Hadoopは、 gzipファイルをHDFSにコピーしているときに解凍する場合があります。



リモートデスクトップでHadoopコマンドシェルを開きます。



clip_image052[4]



c:\ Apps \ dist \ example \ dataに移動します



clip_image054[4]



twitter ストリームストリーム seq8.gzファイルをWindows Azureストレージからc:\ Apps \ dist \ example \ dataフォルダー(NTFS側)にコピーします。 ストレージアカウント内のファイルの場所は、手順3で指定したWindows Azureストレージの関連付けによって異なります。この場合、コンテナーはデータと呼ばれ、 asv://の下の行に表示されます。



c:\ Apps \ dist \ example \ data> hadoop fs -copyToLocal asv://data/twitter_stream_seq8.txt.gz twitter_stream_seq8.txt.gz



以下に示すように、 twitter ストリーム seq8.gzアーカイブc:\ Apps \ dist \ example \ dataフォルダーに解凍します( http://www.gzip.org/からダウンロードする必要があるgzip.exeプログラムが必要です)コマンドが実行されるディレクトリへ):



c:\ Apps \ dist \ example \ data> 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



次のコマンドを使用して、 Twitter ストリーム seq8.txtc:\ Apps \ dist \ example \ dataフォルダーからHDFSにコピーします。



c:\ Apps \ dist \ example \ data>



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



1. HDFS上のファイルが更新されていることを確認します。 これを行うには、開く



clip_image056[4]



/ example / dataフォルダーに移動します。



clip_image058[4]



次のいくつかの手順は、ヘッドノードにコピーしたHadoopコマンドShell.txtファイルから実行するすべての手順に含まれています。



次のコマンドでtwitter_rawを作成してアップロードします。



c:\ apps \ dist \ example \ data> hive -v -f load_twitter_raw.txt



clip_image060[4]



テーブルは、HTFS側の/ hive / warehouseディレクトリに作成されます。



clip_image062[4]



これは、 c:\ Apps \ dist \ example \ data> hiveHive> show tablesと入力することで、Hiveを使用して確認できます 以下に示すように。



clip_image064[4]



Hiveを終了するには、 hive> quitコマンドを使用します。 。 次のようにtwitter_tempを作成してアップロードします。



c:\ apps \ dist \ example \ data> hive -v -f create_twitter_temp.txt



4つのノードがある場合、この操作には20分以上かかり、8つのノードがある場合、8分55秒かかります。 次のウィンドウで進行状況を確認します。



clip_image066[4]



タスクをクリックして、詳細と進行状況を表示します。 操作には20分以上かかる場合があります。



clip_image068[4]



Hadoopコマンドシェルを使用してタスクの実行を監視することもできます。



clip_image070[4]



これは、Hiveを使用してc:\ Apps \ dist \ example \ data> hiveおよびHive> show tablesと入力することで確認できます。



clip_image072[4]



次のようにtwitter_streamを作成してアップロードします。



c:\ apps \ dist \ example \ data> hive -v -f create_twitter_stream.txt



4つのノードがある場合、この操作には60分以上かかり、8つのノードがある場合、31分54秒かかります。 上記のように進行状況を追跡します。 次のコマンドでtwitter ストリームサンプルを作成してダウンロードします。



c:\ apps \ dist \ example \ data> hive -v -f create_twitter_stream_sample.txt



上記のように進行状況を追跡します。 次のようにtwitter_moviesを作成してアップロードします。



c:\ apps \ dist \ example \ data> hive -v -f create_twitter_movies.txt



上記のように進行状況を追跡します。 次のコマンドでtwitter ムービー vwを作成してダウンロードします。



c:\ apps \ dist \ example \ data> hive -v -f create_twitter_movies_vw.txt



上記のように進行状況を追跡します。



ExcelでHive ODBCおよびHiveダッシュボードを構成してHiveデータを取得する



このセクションは、ダウンロードタイルにあるApache Hadoop for Windows Azureサービスの手順とよくある質問のドキュメントから取得されています。



clip_image074[4]



Windows AzureポータルのHadoopで。



clip_image076[4]



clip_image078[4]



そこから、64ビットおよび32ビットバージョンのExcel用のHiveODBCSetupをダウンロードできます。



HiveODBCを使用してWindows AzureプラットフォームのHadoopでExcel用Hiveアドインに接続する方法



Microsoftのビッグデータソリューションの最も重要な機能は、HadoopとMicrosoftビジネスインテリジェンスコンポーネントの統合です。 良い例は、HadoopクラスターのHiveデータウェアハウスフレームワークへのExcelの接続です。 このセクションでは、Hive ODBCドライバーを介してExcelを使用する方法を示します。



Hive ODBCドライバーのインストール



インストールを開始するには、Windows AzureポータルのHadoopから64ビットバージョンのHive ODBCドライバー(.msiファイル)をダウンロードします。 HiveODBCSetupx64.msiをダブルクリックして、インストールを開始します。 ライセンス契約を読みます。 条件に同意する場合は、[ 同意し、 インストール ] クリックします



clip_image080[4]



インストールが完了したら、[ 完了 ]をクリックしてウィザードを終了します。



Excel用Hiveアドインをインストールする



このアドインをインストールするには、64ビットバージョンのHive ODBCドライバーとExcel 2010アプリケーションが必要です。64ビットバージョンのExcel 2010を実行します。システムは、 HiveExcel拡張機能のインストールを求めます。 インストールをクリックします 。 拡張機能がインストールされたら、Microsoft Excel 2010の[ データ ]タブをクリックします。次のスクリーンショットに示すように、[ハイブ]パネルが開きます。



clip_image082[4]



Excel用のHive ODBCデータソースの作成



[ スタート] -> [ コントロールパネル ]を選択して、Microsoft Windows コントロールパネルを起動します。 コントロールパネルウィンドウで、[ システムとセキュリティ] -> [ 管理ツール] -> [ データソース(ODBC)]を選択します。 [ ODBCデータソースアドミニストレーター ]ダイアログボックスが表示されます



clip_image084[4]



[ ODBCデータソースアドミニストレーター ]ダイアログボックスで、[ システムDSN ]タブを選択します。 [ 追加]をクリックして、データソースを作成します。 ODBCドライバーリストでHIVEドライバーを選択します。



clip_image086[4]



完了をクリックします。 下のスクリーンショットに示すように、[ ODBC Hiveセットアップ ]ダイアログボックスが開きます。



clip_image088[4]



[ データソース名]フィールドに名前を入力します。 たとえば、 MyHiveData 。 [ ホスト]フィールドに、ポータルで作成されたクラスターノードの名前を入力します。 たとえば、 myhadoopcluster.cloudapp.netです。 ポータルで認証用のユーザー名を指定します。



[ OK]をクリックして、Hiveデータソースを保存します。 [ OK]をクリックして、[ ODBCデータソースアドミニストレーター ]ダイアログボックスを閉じます。



ExcelでHiveデータを取得する



64ビットバージョンのExcel 2010を実行します。次に、[ データ ]タブをクリックします。 [ ハイブパネル]をクリックして、Excelでハイブパネルを開きます。 [ハイブ接続の選択または入力]ドロップダウンリストで、前に作成したデータソースの名前を指定します。



システムは、ポータル上のクラスターで認証用のパスワードを入力するよう要求します。 パスワードとユーザー名を入力します。 [クエリするハイブオブジェクト選択 ]ドロップダウンリストから、[ hivesampletable [テーブル]を選択します。 テーブル内のすべての列を確認します。 Hive Queryパネルは次のようになります。



clip_image090[4]



クエリの実行をクリックします。



clip_image092[5]



この例のデータを処理するには、次の形式のクエリを実行する必要があります。



twitter 映画 vw制限20から選択*



結論



このガイドでは、Windows AzureでHadoopを使用し、ExcelでHiveを照会して、Twitterのデータを照会、調査、分析する方法を検討しました。



All Articles