Hadoopを10分で試す(6)HueからSolrを使う

**この記事の内容は若干古くなっています。まとめページもご覧下さい**
それでは、Clouderaのブログに従い、Solrを使ってみましょう。

MapReduceによるバッチインデックス

まずは、ターミナルから疑似ツイートをセットアップします。この仮想マシンにはサンプルツイートを生成するスクリプトが用意されています。以下のコマンドを実行しましょう。
$ ~/datasets/batch-tweets.sh


[cloudera@localhost ~]$ ~/datasets/batch-tweets.sh
Uploading configs from /home/cloudera/batch_tweets_configs/conf to localhost:2181/solr. This may take up to a minute.
rm: `/user/cloudera/batch_tweets_indir': No such file or directory
rm: `/user/cloudera/batch_tweets_outdir': No such file or directory
0 [main] INFO org.apache.solr.common.cloud.ConnectionManager - Waiting for client to connect to ZooKeeper
33 [main-EventThread] INFO org.apache.solr.common.cloud.ConnectionManager - Watcher org.apache.solr.common.cloud.ConnectionManager@494eaec9 name:ZooKeeperConnection Watcher:localhost:2181/solr got event WatchedEvent state:SyncConnected type:None path:null path:null type:None

(略)
er state from ZooKeeper…
105958 [main] INFO org.apache.solr.hadoop.GoLive – Done committing live merge
105959 [main] INFO org.apache.solr.hadoop.GoLive – Live merging of index shards into Solr cluster took 2.708 secs
105959 [main] INFO org.apache.solr.hadoop.GoLive – Live merging completed successfully
105959 [main] INFO org.apache.solr.hadoop.MapReduceIndexerTool – Succeeded with job: jobName: org.apache.solr.hadoop.MapReduceIndexerTool/TreeMergeMapper, jobId: job_201306202111_0002
105959 [main] INFO org.apache.solr.hadoop.MapReduceIndexerTool – Success. Done. Program took 106.081 secs. Goodbye.
SolrのAdmin UIは下記のようになりました。
Solr Admin

HueからSolrを使う

Hueから虫眼鏡のアイコンをクリックすると、以下のダイアログが表示されます。
Hue Solr
batch_tweetsにチェックし、Import Selectedをクリックします。
無事にインポートされました。
Hue Solr imported
batch_tweetsをクリックし、左側のメニューからSearch itをクリックします。
Hue Editor
結果が表示されました。Clouderaのブログとは少々異なる見栄えです。。
Hue search result

Flumeによる、ツイートをリアルタイムに近い速度でインデキシング

Apache Flumeは、高信頼性で分散可能なログ種集サービスです。(http://flume.apache.org)。
ブログの手順によると、ツイッターへのアクセスが必要です。http://dev.twitter.comにログインし、下記のスクリーンショットを参考にして必要情報(アクセストークンなど)を取得して下さい。
dev.twitter.com
twitter
twitter access token
無事に作成できました。作成できたら仮想マシンのコマンドラインから、それらの情報をコマンドの引数で指定します。
フォーマット:$ ~/datasets/nrt-tweets.sh start [CONSUMER_KEY] [CONSUMER_SECRET] \
[ACCESS_TOKEN] [ACCESS_TOKEN_SECRET]
例:(アクセストークンなどはダミーです)

[cloudera@localhost ~]$ ~/datasets/nrt-tweets.sh start bHv9qOppsOFrEF2SFMFVQ asf0324nkasfsdarEF2SFMFVQ 164074432-KZ3N3jQop8x034afAK0IvNYpGWg5a4YCmIsQ4huhVP YbUElRN1gUKDVDlLysR3eaDXs820Y0r3aELUgs
Starting Flume NG agent daemon (flume-ng-agent): [ OK ]
Stopping Flume NG agent daemon (flume-ng-agent): [ OK ]
Starting Flume NG agent daemon (flume-ng-agent): [ OK ]
[cloudera@localhost ~]$

しばらく放置してから停止します。

[cloudera@localhost ~]$ ~/datasets/nrt-tweets.sh stop
Stopping Flume NG agent daemon (flume-ng-agent): [ OK ]
[cloudera@localhost ~]$

取り込んだツイートデータをインポートします。
import
nrt_tweets
Collection Managerからnrt_tweetsをクリックし、左側のメニューからSearch itをクリックします。
template editor
検索してみました。データは無事に取り込まれているようです!
nrt_tweets search result
少々見た目が寂しいですが、このブログのように表示レイアウトはカスタマイズできるようなので、後ほど試してみましょう。アイコンなんかも表示されると良いですよね。
さて、次回に続きます。


(追記 2013/06/22 17:00)
検索結果の画面をカスタマイズしてみました。アイコンがうまく表示できないですが、こんな感じです。結構簡単にカスタマイズできる!
tweets customized
(追記:2013/6/25)
このアイコンの問題、Firefoxのバージョンを最新(手元ではver17)にアップデートすることにより解決しました。開発チームと@daisukebe_さんの迅速な対応に感謝!!