Descargando e instalando Hive
- Página web oficial: http://hive.apache.org/
- Site de releases: http://www.apache.org/dyn/closer.cgi/hive/
- Release que vamos a usar: http://ftp.cixug.es/apache/hive/hive-0.13.0/apache-hive-0.13.0-bin.tar.gz
Lo primero descargar y ejecutar la release que queramos usar:
wget 'http://ftp.cixug.es/apache/hive/hive-0.13.0/apache-hive-0.13.0-bin.tar.gz' tar -zxvf apache-hive-0.13.0-bin.tar.gz cd apache-hive-0.13.0-bin/bin export HIVE_HOME=$HOME/apache-hive-q0.13.0-bin export PATH=$PATH:$HIVE_HOME/bin
Arrancando el cluster de Hadoop
Hive necesita al menos Hadoop 1.2.1 corriendo para funcionar. Si no sabes como instalar Hadoop aún te recomiendo que te pases por el tutorial Instalando Hadoop en modo pseudo-distribuido (local)
Una vez tengamos el cluster corriendo, Hive necesita de dos carpetas dentro del HDFS con permisos de grupo para poder funcionar, para crear esas carpetas y darles los permisos necesarios ejecutaremos las órdenes siguientes:
hadoop fs -mkdir /user hadoop fs -mkdir /user/hive hadoop fs -mkdir /user/hive/warehouse hadoop fs -mkdir /tmp hadoop fs -chmod g+w /tmp hadoop fs -chmod g+x /user/hive/warehouse
Como se puede apreciar, Hive necesita de las carpetas /tmp y /user/hive/warehouse para poder funcionar.
Este es
un fichero de
ejemplo en
del que vamos
a contar
sus palabras
El cual tendremos que copiar dentro del HDFS. Recordamos el comando:
hadoop fs -copyFromLocal ejemplo.txt /tmp/ejemplo.txtAhora, ejecutamos la consola de Hive con el comando "hive" (sin comiillas) y creamos una tabla para almacenar el fichero de texto en ella:
hive>CREATE TABLE ejemplo (linea STRING);Con el comando anterior, sólo hemos creado una tabla nueva, pero no la hemos cargado de información. Para cargar un fichero en una tabla ejecutaremos la orden siguiente:
hive>LOAD DATA INPATH '/tmp/ejemplo.txt' OVERWRITE INTO TABLE ejemplo; Deleted hdfs://asusnotebook:54310/user/hive/warehouse/texto Table default.texto stats: [numFiles=1, numRows=0, totalSize=73, rawDataSize=0] OK Time taken: 1.612 secondsYa tenemos el fichero cargado en la tabla ejemplo. Ahora hay que crear otra tabla para almacenar el resultado del conteo de palabras:
hive>CREATE TABLE contador AS SELECT palabra, count(1) AS cuenta FROM (SELECT explode(split(linea,' ')) AS palabra FROM texto) w GROUP BY palabra ORDER BY cuenta;
Esto comenzará creará dos MapReduce que comenzarán a trabajar de inmediato. Los mensajes que aparecen son como los siguientes (resumido)
[...] Stage-2 map = 0%, reduce = 0% Stage-2 map = 100%, reduce = 0%, Cumulative CPU 0.84 sec Stage-2 map = 100%, reduce = 100%, Cumulative CPU 2.12 sec OK Time taken: 42.304 seconds
Vamos a ver ahora que se ha creado dentro de la tabla contador
hive>SELECT * FROM contador;
a 1Y ahí lo tenemos. Por poco casi no repito una palabra pero como se puede apreciar, la palabra "del", "fichero" y "palabras" aparecen 2 veces cada una.
contar 1
cuantas 1
de 1
del 2
dentro 1
ejemplo 1
es 1
estan 1
fichero 2
hay 1
palabras 2
que 1
sus 1
un 1
vamos 1
ver 1
y 1
0 comentarios:
Publicar un comentario