Análise de sentimento com Flume e Twitter

TERCEIRA PARTE

Link da documentação oficial do Hadoop:

http://hadoop.apache.org/

Link do meu Github:

https://github.com/toticavalcanti

CONTINUANDO COM A CONSTRUÇÃO DA APLICAÇÃO DE ANÁLISE DE SENTIMENTO.

COMO VAMOS UTILIZAR O HIVE, VAMOS CONHECER UM POUCO SOBRE ELE

HIVE

  • O HIVE É UM SISTEMA DE DATA WAREHOUSE OPENSOURCE, USADO PARA CONSULTAR E ANALISAR GRANDES CONJUNTOS DE DADOS.
  • OS DADOS NO APACHE HIVE PODEM SER CATEGORIZADOS EM TABELA, PARTIÇÃO E BUCKET (BALDE).
  • A TABELA NO HIVE É LOGICAMENTE COMPOSTA PELOS DADOS QUE ESTÃO SENDO ARMAZENADOS.
  • HIVE TEM DOIS TIPOS DE TABELAS
    • TABELA GERENCIADA (TABELA INTERNA)
    • TABELA EXTERNA

TABELA INTERNA

QUANDO CRIAMOS UMA TABELA NO HIVE, ELE POR PADRÃO, GERENCIA OS DADOS. ISSO SIGNIFICA QUE O HIVE MOVE OS DADOS PARA O DIRETÓRIO DO WAREHOUSE.

TABELA EXTERNA

DIZ AO HIVE PARA SE REFERIR AOS DADOS QUE ESTÃO EM UM LOCAL EXISTENTE FORA DO DIRETÓRIO DO WAREHOUSE.

AGORA VAMOS CRIAR AS TABELAS HIVE QUE IREMOS USAR. ANTES PORÉM, IREMOS COPIAR O ARQUIVO hive-serdes-1.0-SNAPSHOT.jar para a PASTA /usr/lib/hive/lib.

cp hive-serdes-1.0-SNAPSHOT.jar /usr/lib/hive/lib

AGORA VAMOS BAIXAR O SCRIPT create_twitter_schema.hql NO LINK:

https://github.com/toticavalcanti/Curso_Hadoop/tree/master/Flume/Flume_Twitter/Arquivos_extras/Create_Twitter_Schema.hql

O CONTEÚDO É:

CREATE EXTERNAL TABLE incremental_tweets (
   id BIGINT,
   created_at STRING,
   source STRING,
   favorited BOOLEAN,
   retweet_count INT,
   retweeted_status STRUCT<
      text:STRING,
      user:STRUCT<screen_name:STRING,name:STRING>>,
   entities STRUCT<
      urls:ARRAY<STRUCT>,
      user_mentions:ARRAY<STRUCT<screen_name:STRING,name:STRING>>,
      hashtags:ARRAY<STRUCT>>,
   text STRING,
   user STRUCT< screen_name:STRING, name:STRING, friends_count:INT, followers_count:INT, statuses_count:INT, verified:BOOLEAN, utc_offset:INT, time_zone:STRING>,
   in_reply_to_screen_name STRING
)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/twitteranalytics/incremental/';

CREATE TABLE candidate_score (
   candidate_name STRING,
   sentiment_score DOUBLE
)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/twitteranalytics/candidate_score/';

IMPORTANTE: ANTES DE RODAR O SCRIPT Create_Twitter_Schema.hql PARA CRIAR AS TABELAS, DELETE TODOS OS ARQUIVOS JÁ COLETADOS  PELO FLUME NOS TESTES ANTERIORES NA PASTA DENTRO DO HDFS: /twitteranalytics/incremental/

AGORA, VAMOS PARAR O HIVE COM O COMANDO:
sudo service hive-server2 stop

PARA REINICIAR O HIVE USE O COMANDO:
sudo service hive-server2 start

VAMOS AGORA RODAR O SCRIPT Create_Twitter_Schema.hql:

hive -f Create_Twitter_Schema.hql

AS TABELAS FORAM CRIADAS, VAMOS CONFERIR?

PARA ISSO ENTRE NA INTERFACE WEB, VÁ EM SQL => HIVE => DEFAULT

CASO AS TABELAS NÃO ESTEJAM APARECENDO CLIQUE NO REFRESH

AS TABELAS ESTÃO VAZIAS POR ENQUANTO

AGORA VAMOS INICIAR O AGENTE FLUME E DEIXAR ELE COLETAR ALGUNS ARQUIVOS QUE IRÃO POPULAR A TABELA incremental_tweets

PARA ISSO USE O COMANDO:

flume-ng agent -f /etc/flume-ng/conf/flume_twitter.conf Dflume.root.logger=DEBUG,console -n TwitterAgent

AGORA ENTRE NO HIVE PELA INTERFACE WEB, VÁ EM CONSULTAR => EDITOR => HIVE E DIGITE:

select * from incremental_tweets;

E VEJA O RESULTADO.

VOCÊ PODE RODAR O MESMO COMANDO PELO TERMINAL NO SHELL DO HIVE, É SÓ DIGITAR NO TERMINAL:

hive

O PROMPT VAI MUDAR PARA:

hive>

AÍ É SÓ DIGITAR A CONSULTA NOVAMENTE:

select * from incremental_tweets;

SE QUISER PEGAR APENAS ALGUNS CAMPOS< COMO POR EXEMPLO: ID, NOME DO USUÁRIO E O TEXTO

select id, user.name, text from incremental_tweets;

Obrigado

Até a próxima

Aula 11 – Análise de sentimento com Flume / Twitter 03

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>