Esta es una guía sencilla, que explica paso a paso como instalar y ejecutar Hadoop en una máquina Linux.
Si ya tienes instalado Hadoop, quizás te interese: Creación y ejecución de un programa Python para Hadoop Map Reduce en Linux
En primer lugar instalamos Java, ya que Hadoop se ejecuta sobre este lenguaje. Para el ejemplo utilizaremos la consola de CentOS pero también es válido para Ubuntu o Linux Mint. Como primer paso nos logeamos como usuario root:
su -
Si no tienes contraseña de root creada, puedes usar este comando:
sudo su
Ahora procedemos a instalar Java:
yum install java-1.8.0-openjdk-devel
Podemos comprobar que la instalación se ha realizado correctamente viendo la versión de Java instalada:
java -version
Debe salirnos algo como esto:
Descargamos pagina de conocer mujeresdesde la siguiente página:
http://exponentis.es/citas-en-linea-en-santa-cruz-bolivia
En este caso estamos descargando el binario de la versión 2.8.5, pero puede ser otra versión a tu elección:
Se trata, como se puede observar, de un fichero comprimido que hay que descomprimir. Podemos descomprimirlo desde la consola entrando primero en la carpeta donde se halle el archivo. Si por ejemplo éste se hallase en el Escritorio, en primer lugar se saldría del usuario root:
exit
Y en segundo lugar entraría en la carpeta Escritorio (Desktop si lo tenemos en inglés):
cd Escritorio
Ahora podemos descomprimir con el siguiente comando:
tar xzf hadoop-2.8.5.tar.gz
Esto nos creará una nueva carpeta con el contenido descomprimido. Ahora vamos a mover esa carpeta recién creada con el siguiente comando, y para ello debemos volver a ser usuario root:
sudo su
mv hadoop-2.8.5 /usr/local/
Está será la localización dónde instalaremos dating mallorca spain. Ahora volvemos a salir de usuario root:
exit
Ahora creamos unas mujeres solteras merida venezuela sin contraseña, para que citas por internet toluca realice conexiones con servidores y consigo mismo de forma automática:
ssh-keygen -t rsa -P ""
Le damos a ENTER cuando nos pregunte por el archivo dónde guardar la clave sin escribir nada (la opción por defecto nos sirve perfectamente).
Ahora vamos a indicarle que la clave pública creada la vamos a introducir dentro de las claves autorizadas:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Nota: el símbolo virgulilla en Linux se escribe con “Alt Gr + 4”, mientras que en Windows es “Alt + 126”.
Lo siguiente es eliminar todos los permisos que hubiésemos tenido en authorized_keys:
chmod -R go= ~/.ssh
Ahora hacemos que la capeta ssh pertenezca a nuestro a usuario:
chown -R usuario:usuario ~/.ssh/
Debemos sustituir en el código anterior la palabra “usuario” por nuestro nombre de usuario en la máquina Linux, que será el hombre que sale en la misma línea de comandos de la terminal antes del símbolo @.
Ahora realizamos una conexión SSH con nosotros mismos, con la máquina localhost:
ssh localhost
Si te falla el comando anterior y te da un error del tipo “port 22: Connection refused” prueba con el siguiente código:
sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22
Ya estamos conectados con nosotros mismos a través de SSH, que es lo que va a hacer Hadoop. Una vez que hemos comprobado que la conexión es correcta la cerramos:
exit
Una vez configurado el SSH, vamos a definir la variables de entorno que vamos a necesitar para ejecutar Hadoop. Vamos a comprobar dónde está Java instalado:
which javac
El resultado debe ser algo parecido a esto:
Vemos hacia dónde nos redirige con el siguiente código:
readlink -f /usr/bin/javac
El resultado debe ser algo similar a esto:
Nos quedamos especialmente con la ruta que hay justo antes del “/bin/javac” final, ya que la necesitaremos después, así que la seleccionamos y hacemos un Shift+Ctrl+C.
Ahora indicamos en qué carpeta está Java y en qué carpeta está Hadoop modificando el fichero bashrc:
gedit ~/.bashrc
Si no te funciona el comando gedit es que necesitas instalarlo previamente con el siguiente comando en CentOS:
sudo yum install gedit
En Linux Mint o Ubuntu sería:
sudo apt install gedit
Esto nos abrirá el fichero bashrc con el editor de texto gedit. Nos vamos al final del documento y escribimos las siguientes líneas, indicando dónde se encuentran instalados Java y Hadoop tal como hemos visto anteriormente. El último export es solo para simplificar la ruta de acceso a Hadoop:
export HADOOP_HOME=/usr/local/hadoop-2.8.5
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
export PATH=$PATH:$HADOOP_HOME/bin
En mi caso el fichero bashrc editado queda de la siguiente forma (recuerda escribir el nuevo código al final del documento):
Para actualizar en la terminal la configuración que acabamos de introducir escribirnos los siguiente:
source ~/.bashrc
Procedemos ya a configurar Hadoop con todo lo que necesitemos:
gedit $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Aquí simplemente comprobamos que Hadoop ejecutará Java en la localización que ya le hemos indicado. Debe existir una línea de la siguiente forma:
export JAVA_HOME=${JAVA_HOME}
Si es correcta no necesitamos hacer nada más y cerramos el fichero. Comprobamos que Hadoop está correctamente instalado:
hadoop version
Nos debe dar un resultado similar a este:
Vamos a ejecutar un primer comando en Hadoop para ver si va todo correctamente. Para ello nos movemos al escritorio y creamos una nueva carpeta y un archivo de datos:
cd Escritorio
mkdir entradaWordCount
touch ./entradaWordCount/entrada1
Vamos a crear un programa en Hadoop que cuente las palabras que hay en ese archivo. Para ello nos vamos a la carpeta creada en el escritorio, lo abrimos con doble click, escribimos cualquier texto y guardamos. En mi caso ha quedado así:
En este caso usaremos un programa nativo de Hadoop llamado WordCount en el que usaremos Hadoop Map Reduce. Cada mapper en este caso recibirá cada una de las líneas y emitirá a los reducer todas las palabras presentes junto a un número que indica la veces que se repite cada palabra. Reducer suma todos los números y calcula el total.
Ejecutamos el programa:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount ./entradaWordCount/entrada1 ./salidaWordCount
El código anterior, en primer lugar especifica la ruta y el programa de Hadoop a utilizar (wordcount), luego el archivo de entrada y por último el archivo de salida que creará el propio Hadoop.
Al ejecutarlo obtenemos un resultado en pantalla que nos da información interesante sobre el proceso de Map Reduce:
“Map input records=64” indica que Map recibió 64 entradas, que son las 64 líneas del texto. Por cada una de las líneas de entrada fue a un Map. Con esas entradas, se generaron “Map output records=292” salidas, es decir, 292 claves-valor o palabras que hay en el documento. “Clave” seria cada palabra en la frase y “valor” es un número que indica las veces que se repite dicha palabra en la frase.
“Combine input records=292” y “Combine output records=127” indica que el combiner ha reducido la información transmitida desde el mapper el reducer de 292 a 127. Por último “Reduce input records=127” son las 127 palabras que ha recibido el reducer que también son la salida.
Si accedemos al escritorio de nuevo, veremos una nueva carpeta llamada salidaWordCount con un fichero dentro llamado part-r-00000 dónde viene listado la cuenta de palabras. Hadoop crearía un fichero de salida por cada reducer empleado, pero dado que solo tenemos un servidor y un fichero con pocos datos, Hadoop solo ha creado un reducer para la operación.
El resultado obtenido en el fichero part-r-00000 es el siguiente:
"Victor-Juliet, 1
'Emergency'!" 1
(Climbing, 7
(Got 1
1, 2
18! 1
18, 1
24 1
30 1
And 3
Automatic, 1
CU.NIMB...icing, 1
Calling 1
Climbing 5
Coming 1
Communicate 1
Don't 2
Five 5
Golf-Mike-Oscar-Victor-Juliet 1
Got 8
I 1
IMC 1
In 1
Just 8
Lost 1
Mayday! 3
Number 2
Our 1
Push 2
Rider 1
The 2
There's 1
This 1
Trapped 1
Welcome's 1
What 1
You'll 1
You're 2
You've 1
Your 1
a 2
again! 2
all 1
and 3
anticipating 3
are 1
band 2
be 1
beacon; 1
blades 1
blue. 1
braking. 1
calling, 1
celebrating, 1
climbing) 7
closing 1
controller 1
crack 1
dark 1
degrees 1
difficulty, 1
dive 2
do 2
down 1
evil 1
eye 1
falling, 1
finest 8
for 1
get 8
got 1
great 1
have 1
heading 8
hell! 1
hold 8
hope's 1
hurricane's 1
identity. 1
in 7
is 3
it's 1
kill. 1
living 1
lost 1
miles 6
now 1
now. 1
of 4
or 1
out, 4
out. 9
out.... 6
out? 1
over. 1
prisoner 1
propeller 1
push 1
rain! 2
sky 1
sky, 1
squawk 1
stalling 1
static, 1
stations! 1
still! 1
storm 1
storm! 1
take 2
that 4
the 9
through 2
through!) 1
to 10
traffic 1
true. 8
violent 1
waiting, 1
warning's 1
we're 1
when 2
with 1
you 2
you're 2
you, 1
you. 2
your 19
Un aporte muy interesante. Muchas gracias por la ilustración. Saludos.
Buena explicación. Saludos