HIVE - Consultas "tipo SQL" sobre Hadoop
noviembre 19, 2013![]() |
¿Un elefante-abeja? WTF! |
Este post pertenece a la serie de BigData & Hadoop. A continuación tenéis el esquema que iré siguiendo de publicación de los Post:
Seguimos con los componentes de Hadoop. Hoy es uno de los más importantes y quizás más sencillos de instalar y configurar una vez tenemos nuestro clúster de hadoop bien montado.
Este post dará nociones básicas sobre HIVE pero no entraré en la instalación y configuración, puesto que es muy sencilla.
¿Qué es HIVE?
Hive es almacén de datos creado específicamente para Hadoop que nos facilita la tarea de sumarizar los datos pre-existentes en HDFS. La idea principal de Hive es la de funcionar como capa externa a Hadoop a modo de envoltorio, donde vamos a poder realizar consultas sobre el sistema de archivos que serán tratadas como MapReduces en modo nativo en HDFS.
Para poder realizar estas operaciones, los de Apache crearon un lenguaje de consultas a "base de datos" (recordemos que HDFS es un sistema de ficheros) muy similar a SQL, que denominaron HiveQL o HQL (dependiendo de en que libro lo leas lo verás de una manera u otra).
El corazón de esta idea se basa en el denominado MetaStore, que es un "lugar" donde se van a ir guardando toda la información relacionada con las operaciones en Hive, por lo tanto el día que queráis formatear Hive, deberéis borrar dicho directorio para tenerlo como el primer día.
Es una herramienta que utilizan en facebook y los chic@s de Hortonworks nos explican como se manejan con este componente.
Características especiales de Hive
Al ser una capa de alto nivel de un sistema de ficheros HDFS, hay algunas operaciones "tipo SQL" que son especiales en Hive. En concreto las operaciones de crear tablas que tiren de HDFS y la de carga de datos en Hive pueden ser ejemplos de ello:
- Crear una tabla que "tire" de HDFS:
CREATE TABLE tablaDePrueba (campo1 string, campo2 int)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\t'
STORED AS TEXTFILE;
- Cargar datos en la tabla:
- Consulta a tabla:
SELECT campo1,campo2 FROM tablaDePrueba LIMIT 100 ORDER BY campo2 DESC;
También podemos hacer consultas a tablas que se encuentren en HBase (con el fin de no tener que realizar bulks loads a Hive de ficheros de texto plano), pero la penalización por la latencia es tan alta, que para que realmente nos sea rentable usar la combinación Hadoop + HBase + Hive necesitaremos un clúster enorme, de cientos de nodos (cosa que debe pasar en Facebook).
Avisar que con Hive no podremos realizar JOINs ni hacer CRUD. Es algo en lo que están trabajando y se espera para siguientes versiones, según nos comentaron en BigDataSpain.
Y por hoy es todo. ¿Ha sido fácil eh?!!!
Fuentes:
2 comentarios
Buen día Francisco,
ResponderEliminarHe leído la serie de BIG DATA & Hadoop y me parece muy bueno el trabajo que realizaste, yo estoy adentrando en este mundo del BIG DATA y me ha servido bastante, aún falta leer completas las sugerencias que das de cada herramienta pero quería agradecer el tiempo que dedicas para hacer llegar a otras personas interesadas tus conocimientos e investigaciones.
Saludos!
Players have been informed that they 1xbet korea might be given $25 for taking part , and that they would be able to|be succesful of|have the ability to} win up to as} an extra $20.00 dollars relying on their winnings. Players began with 1,500 credits initially of a slots session, and ended up with 1,a hundred and ten credits. Since outcomes have been fastened, all members actually gained $11.10 per session. The risk of successful additional funds was used to combat the artificiality of the expertise .
ResponderEliminarSé respetuoso/a, en este blog caben todo tipo de opiniones con respeto y serenidad.