12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TwitterからNiFiでデータを収集し、データフローをコントロールし、Solr + Bananaで可視化させてみよう

Last updated at Posted at 2016-12-01

このブログはHortonworks Advent Calendar 2016の1日目のエントリーです。

Hortonworksの展示ブースなどで見かけたかもしれませんが、TwitterからのデータをNiFiで収集し、Apache Solr + Bananaで可視化するデモの作成方法について解説します。環境としては、VMware、Virtual Boxなどでも作れますが、今回はMicrosoft Azure上に作りたいと思います。

実は、このネタは英語のチュートリアルのAnalyzing Social Media and Customer Sentiment With Apache NiFi and HDP Searchが元ネタです。


Azure上で、Hortonworks Data Platform (HDP)をデプロイ

Hadoop、Sparkを、Azure上のHortonworks Data Platformで試してみようを参照ください。

Hortonworks DataFlow (HDF)の設定

  • ローカルのPCに、こちらより、NiFi onlyのDownload tar.gzをクリックし、HDF-2.x.x.x-xxx.tar.gzダウンロード
  • Azure上に展開したSandboxにダウンロードしておいたHDFをアップロード
kkitase$ scp ~/Downloads/HDF-2.0.0.0-579.tar.gz kkitase@ip-address:/home/kkitase
  • Azure上に展開したSandboxにログインして、設定を行う
kkitase$ ssh <username>@<ip address>
[kkitase@sandbox ~]$ sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
[kkitase@sandbox ~]$ mkdir hdf
[kkitase@sandbox ~]$ mv HDF-2.0.0.0-579.tar.gz hdf
[kkitase@sandbox ~]$ cd hdf
[kkitase@sandbox hdf]$ tar -xvf HDF-2.0.0.0-579.tar.gz 
[kkitase@sandbox hdf]$ vi HDF-2.0.0.0/nifi/conf/nifi.properties 
nifi.web.http.port=8080
↓変更
nifi.web.http.port=9090
[kkitase@sandbox hdf]$ ./HDF-2.0.0.0/nifi/bin/nifi.sh start
 2016-12-01 23.49.35.png

Solrの設定

[kkitase@sandbox ~]$ sudo chown -R solr:solr /opt/lucidworks-hdpsearch/solr
[kkitase@sandbox ~]$ sudo su solr
[solr@sandbox kkitase]$ cp -r /opt/lucidworks-hdpsearch/solr/server/solr/configsets/data_driven_schema_configs /opt/lucidworks-hdpsearch/solr/server/solr/configsets/tweet_configs
[solr@sandbox kkitase]$ vi /opt/lucidworks-hdpsearch/solr/server/solr/configsets/tweet_configs/conf/solrconfig.xml

<processor class="solr.ParseLongFieldUpdateProcessorFactory"/>
  <processor class="solr.ParseDateFieldUpdateProcessorFactory">
    <arr name="format">
      <str>EEE MMM d HH:mm:ss Z yyyy</str>  ★この行を追加
      <str>yyyy-MM-dd'T'HH:mm:ss.SSSZ</str>
      <str>yyyy-MM-dd'T'HH:mm:ss,SSSZ</str>
      <str>yyyy-MM-dd'T'HH:mm:ss.SSS</str>
      <str>yyyy-MM-dd'T'HH:mm:ss,SSS</str>
      <str>yyyy-MM-dd'T'HH:mm:ssZ</str>
      </arr>
    </processor>
</processor>

[solr@sandbox kkitase]$ cd /opt/lucidworks-hdpsearch/solr/server/solr-webapp/webapp/banana/app/dashboards/
[solr@sandbox dashboards]$ mv default.json default.json.orig
[solr@sandbox dashboards]$ wget https://raw.githubusercontent.com/abajwa-hw/ambari-nifi-service/master/demofiles/default.json
[solr@sandbox dashboards]$ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
[solr@sandbox dashboards]$ /opt/lucidworks-hdpsearch/solr/bin/solr start -c -z localhost:2181
[solr@sandbox dashboards]$ /opt/lucidworks-hdpsearch/solr/bin/solr create -c tweets -d tweet_configs -s 1 -rf 1
[solr@sandbox dashboards]$ exit
[kkitase@sandbox ~]$ sudo su -
[root@sandbox ~]# yum install -y ntp
[root@sandbox ~]# service ntpd stop
[root@sandbox ~]# ntpdate pool.ntp.org
[root@sandbox ~]# service ntpd start
 2016-12-02 0.26.28.png

Twitter Appsを作成する

 2016-12-02 0.13.22.png
  • Permissionsタブで下記のように設定し、Update Settingsをクリック
 2016-12-02 0.14.03.png
  • Keys and Access Tokensで下記の値をコピーしておく
  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secet

NiFiでフローを設定

  • デモ用のテンプレートをこちらからダウンロード

  • 赤枠で囲ったボタンをクリックし、先ほどダウンロードしたテンプレートをインポート

 2016-12-01 23.49.39.png
  • 赤枠で囲ったボタンをキャンパスにドラッグアンドドロップ
 2016-12-01 23.50.08.png
  • Twitter Flowを選択
 2016-12-01 23.50.12.png
  • Twitter Flowが表示されるので、Grab Garden Hoseと書かれた箱(NiFiではプロセッサーと呼ぶ)を右クリックし、Configureをクリック
 2016-12-01 23.50.46.png
  • Propertiesタブで、先ほどメモしたConsumer Key, Consumer Secret, Access Token, Access Token Secretを設定し、Terms to Filter Onに、Twitterでモニターするキーワードを設定
 2016-12-01 23.55.12.png

Solrの可視化ツールBananaで確認

 2016-12-01 23.58.40.png

以上、NiFiでTwitterからデータを収集し、そのデータフローをコントロールし、Solrにデータを格納し、Bananaで可視化するといったデモ作成手順について説明しました。英語のチュートリアルには続きがあるので、次回また、整理して日本語にしてみたいと思います。

12
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?