Twitter에서 NiFi로 데이터를 수집하고 데이터 흐름을 제어하고 Solr + Banana로 시각화해 봅시다.

이 블로그는 Hortonworks Advent Calendar 2016의 첫 번째 항목입니다.

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 전용 다운로드 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
    

  • http://ip-address:9090/nifi에 액세스하면 NiFi UI가 표시됨


  • 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
    

  • http://ip-address:8983/solr/에 액세스하면 Solr UI가 표시됨


  • Twitter Apps 만들기



  • htps : // 아 ps. 라고 r. 코m/ 방문
  • Create New App을 클릭하고 아래와 같이 생성
  • Permissions 탭에서 다음과 같이 설정하고 Update Settings를 클릭하십시오.

  • Keys and Access Tokens에서 다음 값을 복사하십시오.
  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secet


  • NiFi에서 흐름 설정


  • 데모 템플릿 여기에서 다운로드
  • 빨간색 테두리로 둘러싸인 버튼을 클릭하고 방금 다운로드 한 템플릿을 가져옵니다.
  • 빨간색 프레임으로 둘러싸인 버튼을 캠퍼스로 드래그 앤 드롭
  • Twitter Flow 선택
  • Twitter Flow가 표시되므로 Grab Garden Hose라고 쓰여진 상자 (NiFi에서는 프로세서라고 함)를 마우스 오른쪽 버튼으로 클릭하고 Configure를 클릭합니다.
  • Properties 탭에서 이전에 메모 한 Consumer Key, Consumer Secret, Access Token, Access Token Secret을 설정하고 Terms to Filter On에 Twitter에서 모니터 할 키워드를 설정

  • Solr 시각화 도구 Banana로 확인



  • http://ip-address:8983/solr/banana/index.html#/dashboard로 이동하여 올바르게 설정된 키워드가 시각화되었는지 확인



  • 위에서 NiFi에서 Twitter에서 데이터를 수집하고 데이터 흐름을 제어하고 Solr에 데이터를 저장하고 Banana에서 시각화하는 데모 작성 절차에 대해 설명했습니다. 영어의 튜토리얼에는 계속이 있으므로, 다음에 또, 정리해 일본어로 해 보고 싶습니다.

    좋은 웹페이지 즐겨찾기