lunes, 17 de marzo de 2014

Laboratorio: Instalando Hadoop - Cloudera Manager

Distribuciones que integran Hadoop

   Hadoop es un framework libre escrito en Java que facilita tanto el almacenaje distribuido, como la escritura de aplicaciones distribuidas. Algunos componentes de Hadoop son hoy extremadamente popular:
  • MapReduce: plataforma para procesado en paralelo una tarea o un calculo en grandes cantidades de datos.
  • HBase: base de datos distribuida para grandes volúmenes de datos.
  • HDFS: sistema de ficheros distribuido.
   Con el fin de facilitar la configuración e instalación de Hadoop, existen diversas distribuciones, tales como Cloudera o Hortonworks entre otras.
   La distribución de Cloudera (CDH) fue la primera en aparecer en el mercado, combinando Big Data y Hadoop. CDH no solo incluye el núcleo de Hadoop (HDFS, MapReduce…) sino que también integra diversos proyectos de Apache (HBase, Mahout, Pig, Hive, etc.). CDH es 100% open-source, y cuenta con una interfaz gráfica propietaria, Cloudera Manager, para la administración y gestión de los nodos del clúster Hadoop. La descarga es totalmente gratuita. No obstante, también cuenta con una versión empresarial, que incluye una interfaz más sofisticada. 

Instalando Cloudera Manager

   Para seguir mi andadura en el mundo de Hadoop, después de haber realizado el curso online de introducción en bigdatauniversity.com (con prácticas en el utilizando una imagen con un sistema Linux para wmware con el software IBM biginsights ya configurado)  pretendo instalar y configurar Hadoop por mi cuenta y montarme un pequeño cluster compuesto por mi nuevo ordenador de sobremesa y mi viejo portatil. 
Esquema de mini-cluster hadoop administrado con Cloudera Manager
   El primer paso ha sido escoger e instalar una distribución de Linux en ambos ordenadores. Me he decantado por instalar la distribución ubuntu 12.04 LTS (long-term support release). Una vez instalado y correctamente configurado el sistema operativo en ambos ordenadores (después de luchar para conseguir hacer funcionar el wifi en ambos ordenadores, he podido hacer funcionar el wifi en el portatil, y compartir la conexión a Internet con el de sobremesa a través del cable de red ... los fabricantes y su escaso interés en proporcionar drivers para Linux...).
   He decidido instalar Hadoop mediante la distribución de Cloudera a través de la aplicación Cloudera Manager. He instalado Cloudera Enterprise 5 Beta 2 (incorpora la distribución de Hadoop de cloudera CDH 5 Beta 2) en el ordenador de sobremesa. Se accede inicialmente a la consola de administración a través de la dirección/puerto http://127.0.0.1:7180, con usuario/contraseña admin/admin.


   Una vez instalado Cloudera Manager en el ordenador de sobremesa y para poder instalar y configurar CDH sobre los host que componen el cluster, según se indica en la guía de instalación:
  • Uniform SSH access to cluster hosts on the same port from Cloudera Manager Server host.
  • You must log in to the Cloudera Manager Server host using a root account or an account that has password-less sudo permission. 
  • Cluster hosts must have a working network name resolution system. Properly configuring DNS and reverse DNS meets this requirement.
   Para que la aplicación Cloudera Manager tenga acceso a ambos ordenadores a través de SSH he instalado Open SSH en los dos:

sudo apt-get install openssh-client   
sudo apt-get install openssh-server 

   Para que Cloudera Manager pueda instalar los paquetes necesarios y configurarlos, necesita acceder mediante SSH como usuario root o como un usuario con permisos sudo sin que se requiera contraseña. La cuenta root viene desactivada por defecto en Ubuntu, por lo que voy a conceder permisos sudo (permite a los usuarios tener ciertos privilegios sobre el sistema, acercándose a root,) a un usuario en cada uno de los ordenadores sin que requiera contraseña.
   Los parámetros de que usuario está dentro de sudo y que usuario no lo está, se encuentran en el archivo sudoers, así que lo tendré que editar:
 
sudo gedit /etc/sudoers   

   Doy permiso sudo sin contraseña al usuario astwin (usuario en ordenador de sobremesa) y usuario peset (usuario en ordenador portatil), añadiendo una linea al final del archivo sudoers: 
 
astwin ALL=(ALL) NOPASSWD:ALL  #(Sobremesa)
peset ALL=(ALL) NOPASSWD:ALL    #(Portatil)

   Otro requerimiento es que todos los host del cluster deber ser capaces de resolver DNS y DNS inversa hacia el resto de host. Al tener ambos ordenadores conectados en red mediante cable, compartiendo el Internet wifi del portátil al ordenador de sobremesa, se puede conseguir "bypaseeando" la búsqueda DNS en cada uno de los host a través del fichero /etc/hosts:

sudo gedit /etc/hosts  

   Así queda el contenido del fichero hosts en cada uno de los ordenadores: 
 
127.0.0.1    localhost.localdomain                 localhost    
10.42.0.12  astwin-H87-HD3.local                astwin-H87-HD3 

10.42.0.1    peset-dv6-Notebook-PC.local     peset-dv6-Notebook-PC

   Desde la consola de administración, en el apartado de host, le clickeamos  a añadir nuevos hosts al cluster para añadir los dos ordenadores y automáticamente instalar y pre-configurar CDH en cada uno de ellos.
 
Ordenador portatil
Ordenador sobremesa









 
¡Ya dispongo de mi primer mini cluster de dos ordenadores con Hadoop! Podemos comprobar con el inspector de hosts que todo está ok, corriendo CDH 5 sobre cada uno de los ordenadores.
 
Inspector de host: todo Ok.
Cluster

No hay comentarios:

Publicar un comentario