Você está na página 1de 11

Prcticas BigData.

Ejemplos
1. Ejemplo1. Datos de sensores y mquinas. Anlisis
predictivo

Contiene diversa informacin de temperatura, aire acondicionado y ventilacin


de sensores de diversos edificios. Con ellos podemos comprobar el posible error
de componentes y su sustitucin antes de que fallen.

Comprobar que tenemos hive funcionando

Descomprimir el fichero sensorsFile.zip


o HVAC.csv: temperaturas previstas del edificio y las medidas
obtenidas. Se supone que se ha usado Flume para cargar los
datos
o building.csv: informacin de los edificios. Se supone que se ha
cargado con SQOOP

Crear el directorio /ejemplo1 en HDFS y subir los ficheros all


hdfs dfs -mkdir /ejemplo1
hdfs dfs -put /practicas/SensorFiles/* /ejemplo1

Dentro de hive creamos la siguiente tabla:


create table hvac_stage (
recordDate string,
Time string,
TargetTemp int,
ActualTemp int,
System int,
SystemAge int,
BuildingID int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

Luego creamos la de los edificios:


create table buildings_stage
(BuildingID int,
BuildingMgr string,
BuildingAge string,
HVACproduct string,
Country string)

ROW FORMAT DELIMITED


FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

Cargamos los datos de temperatura en la primera tabla


LOAD DATA INPATH '/ejemplo1/HVAC.csv' OVERWRITE INTO TABLE HVAC_stage;

Cargamos los edificios


LOAD DATA INPATH '/ejemplo1/building.csv' OVERWRITE INTO TABLE buildings_stage;

Hacemos una SELECT de las dos tablas para ver el contenido

Vamos a crear tablas de tipo ORC que suelen ser ms eficientes en HIVE
CREATE TABLE hvac STORED AS ORC AS SELECT * FROM HVAC_stage;
CREATE TABLE buildings STORED AS ORC AS SELECT * FROM buildings_stage;

Vamos a lanzar dos scripts HIVE para refinar los datos de los sensores. Con ello
perseguimos:

Reducir los gastos de calefaccin y AACC

Mantener la temperatura en grados confortables de 65-70 grados FH

Identificar los productos confiables y sustituir los no confiables. Esto


lo hacemos comprobando que la temperatura real difiere en ms de 5
grados de la prevista

Lanzamos la siguiente creacin de table


CREATE TABLE hvac_temperatures as
select *, targettemp - actualtemp as temp_diff,
IF((targettemp - actualtemp) > 5, 'COLD',
IF((targettemp - actualtemp) < -5, 'HOT', 'NORMAL'))
AS temprange,
IF((targettemp - actualtemp) > 5, '1',
IF((targettemp - actualtemp) < -5, '1', 0))
AS extremetemp from hvac;

Hacemos una SELECT de la tabla para ver el contenido de la columna


temprange

NORMAL 5 grados respect a la temperature prevista

COLD -5 grados ms fria

HOT 5 grados ms calurosa

Si la temperatura se escapa a la normalidad, la columna extremetemp la


ponemos a 1. De lo contrario es un 0

Creamos una tabla con los edificios y temperaturas


create table if not exists hvac_building
as select h.*, b.country, b.hvacproduct, b.buildingage, b.buildingmgr
from buildings b join hvac_temperatures h on b.buildingid = h.buildingid;

Hacemos una SELECT para comprobar el contenido


| USA

|0

| Brazil

|1

| Singapore

|
|

|0

| Hong Kong

|1

| Canada

|0

| Mexico

|1

| Singapore

|0

| Singapore

|1

| Germany

|0

| Saudi Arabia | 0
| Belgium

|0

| USA

|1

| China

|1

| Brazil

|1

| Germany
| Israel

|1

|1

Arrancamos Tableau para hacer un anlisis

Nos conectamos al servidor HIVE

Seleccionamos la tabla hvac_building

En una hoja de trabajo arrastramos country y extremetemp

Convertimos el tipo de grfico a mapa y podemos comprobar qu pases tienen


ms desviaciones respecto a la media.

Arrastramos el campo TEMPRANGE a filtro y podemos ver cules son los


pases conde ms variacin de frio y claro hay.

Con el botn derecho sobre el filtro, indicamos Mostrar filtro rpido y


podemos jugar con los datos

Creamos otra hoja con los campos hvaproduct y extremetemp

Podemos ver los productos que cumplen y no las normas.

Podemos arrastrar Nmero de registros al eje para ver la comparacin con los
registros totales

Si arrastramos nombres de Medidas desde Columnas a Color podemos


crear una stacked bar que indicar la diferencia entre ambos valores

2. Ejemplo2. Sentiment Anlisis


Vamos a analizar la valoracin de la pelcula Iron Man en Twiter tras su
estreno
Crear una carpeta en HDFS denominada ejemplo2
Descomprimir el fichero SetimentFiles
Subir a carpeta upload al directorio /ejemplo2
Copiamos los siguientes ficheros a /tmp local. Se encuentra en la
carpeta upload/hive
json-serde-1.1.6-SNAPSHOT-jar-with-dependencies.jar;
hide

Ejecutamos el siguiente fichero. Esto crear las tablas necesarias y


cargar los datos
hive f hivedll.sql

En concreto
o Convierte los datos raw de Twitter en formato tabular
o Con el diccionario identifica el stenimiento sobre cada tweet con
el nmero de palabras positivas y negativas y asigna un valor.
o Crea una nueva table que incluye el sentimiento por cada tweet
Una vez terminado abrimos Tableau
Seleccionamos la tabla tweetsbi

Selecionamos el pas y la columna Sentiment

Se pueden hacer distintos grficos, tanto tabulares, de barra como de mapa.

3. Gestionar Logs

Descomprimimos el fichero ServerLogFiles.zip

Instalamos Apache Flume


Yum install y flume

Copiamos el fichero flume.conf a /etc/flume/conf

Arrancamos flume
flume-ng agent -c /etc/flume/conf -f /etc/flume/conf/flume.conf -n sandbox

Copiamos el fichero generate_logs.py al linux


Lo ejecutamos con python generate_logs.py

Dentro de HDFS habr generado una serie de ficheros de log en /flume/events

Desde Hive, creamos una tabla para trabajar con los datos.
CREATE TABLE FIREWALL_LOGS(time STRING, ip STRING, country STRING, status
STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LOCATION
'/flume/events'

Accedemos a Tableau

Cargamos la tabla FIREWALL_LOGS

Crear un mapa para ver el acceso a la red desde distintos pases

Mediante la columna STATUS averiguar el nmero de accesos con error.

Você também pode gostar