lunes, 25 de noviembre de 2013

vSphere Big Data Extensions

Cuando tienes entre tus intereses VMware y BigData, es complicado resistirse a que aparezca esta opción en tu cliente de vSphere...
 

A finales de Septiembre VMWare publico la versión 1.0 de vSphere Big Data Extensions (a partir de ahora BDE), una interfaz con la que podremos crear clusters de Hadoop en cuatro clicks (y no, no es una exageración).
Queremos hacer más con menos, queremos automatizar, queremos flujos de trabajo automáticos que nos agilicen nuestros procedimientos... es el camino hacia el CloudDBA.

BDE no es más que un appliance de gestión y una o varias plantillas que servirán para desplegar los nodos de nuestros clusters Hadoop. El despliegue se consigue mediante la integración con vSphere y Chef, el competidor de Puppet en el mundo de los SCM.

Sin entrar en detalles sobre sus características voy a destacar dos:
  • Flexibilidad, se pueden instalar la mayoría de distribuciones de Hadoop: 
    • Apache (http://hadoop.apache.org/)
    • Greenplum/Pivotal (http://www.gopivotal.com)
    • Hortonworks (http://hortonworks.com/)
    • Cloudera (http://www.cloudera.com/)
    • MapR (http://www.mapr.com/)
  • Elasticidad, las BDE se basan en un proyecto de software libre llamado Serengeti que además de un despligue sencillo, permite que nuestro cluster crezca o se reduzca en función de las necesidades de cada momento, no sólo conteniendo cada cluster en un Pool de Recursos sino que además gestión de la memoria y vCPUs asignadas.

Una vez acabado el resumen ejecutivo, pongamonos manos a la obra:

Instalación de las vSphere Big Data Extensions

Como veréis instalación rápida y directa al grano, el único pre-requisito es disponer de un entorno de vSphere con un mínimo de recursos.

1. Descargar y desplegar el Appliance

Tan sencillo como descargar y desplegar un OVA. Además de los datos sobre la configuración IP o el Datastore donde lo vamos a instalar tenemos que asegurarnos de dejar activo el check "Initialize Resources?" e introducir la URL del servicio de Single Sing-On de vCenter:

2. Instalar el plug-in de BDE en nuestro Web Client

Una vez desplegada la vApp de Serengeti tendremos que acceder mediante el navegador para instalar el plug-in de BDE:

http://management-server:8080/register-plugin

Indicamos servidor de vCenter, usuario y clave y le damos a Submit.


 

3. Conectar el plug-in con el servidor de Serengeti

Una vez instalado el plug-in, entramos en el apartado de Big Data Extensions del Web Client, le damos a "Connect Server" y selecionamos el management-server.

4. Command-Line Interface

En el Getting Started hay un enlace a un zip con el cli, no lo he probado pero os dejo un screenshoot:

5. Cambiar la clave de acceso

Quizás ya existe en otros productos, pero yo todavía estoy asombrado por la sencillez de la solución que han implantado en el management-server contra las claves de usuario por defecto.

La primera vez que inicias el equipo se genera una clave aleatoria que aparece en la consola. Al ser una consola virtual deberían entrar en tu vCenter y de un plumazo ha desaparecido el tema del password por defecto que se resiste a ser cambiado. Eso si, aquí esta el comando para cambiarlo:

/opt/serengeti/sbin/set-password -u root

6. Configurar nuestra distribución favorita

Se trata de una de las ventajas del software libre, VMware puede ofrecer flexibilidad a sus usuarios permitiendo que instalen cualquier distribución de Hadoop. Además ha dedicado sus esfuerzos algo más importante: integrar esos productos con su plataforma.

Para configurar la integración lo primero es revisar si tiene repositorios para YUM o tendremos que descargar directamente los TAR. Que son los dos tipos de instalación soportados. Para el ejemplo usaré Hortonworks con TAR.

Lo siguiente revisar las versiones compatibles, entramos en el management-server y abrimos el archivo de "mapeos":

/opt/serengeti/www/specs/map

Una vez revisado, buscamos en la web de Hortonworks las URLs de descarga indicadas para la versión que hayamos decidido instalar y construimos un comando como el siguiente:

# config-distro.rb --name HortonWorksHDP13 --vendor HDP --version 1.3 --hadoop http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0/tars/hadoop-1.2.0.1.3.0.0-107.tar.gz --pig http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0/tars/pig-0.11.1.1.3.0.0-107.tar.gz --hive http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0/tars/hive-0.11.0.1.3.0.0-107.tar.gz --hbase http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0/tars/hbase-0.94.6.1.3.0.0-107-security.tar.gz  --zookeeper http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0/tars/zookeeper-3.4.5.1.3.0.0-107.tar.gz --hve true

Se que es un comando feo, pero no todo el mundo ofrece repositorios para YUM. El último paso, reiniciar tomcat para que el servidor tenga en cuenta la nueva distribución:

service tomcat restart

7. Asignar recursos

Antes de poder desplegar clusters como churros tendremos que indicar a Serengeti los recursos que queremos utilizar, tan sencillo como entrar en el apartado "Resources" del plug-in y configurar los Datastores y pools de IPs. 

8. Crear un cluster de Hadoop

Entramos en el apartado de Big Data Extension del Web Client (1er click) y en el apartado de "Big Data Clusters" (2o click) pulsamos en "New Big Data Clusters" (3er click) y si todo ha ido bien aparecerá una ventana donde podremos el nombre y dimensionaremos el cluster:


Cuarto click en OK y dará inicio el proceso de creación de nuestro cluster Hadoop.

¿Ya soy un CloudDBA?

No tenemos que olvidar que hace apenas unos meses aparecía la primera Beta de BDE, pero tiene todos los ingredientes para triunfar: software libre, libertad para escoger distribución de Hadoop, integración más que correcta, valor añadido en la gestión de recursos...

Últimamente me dedico a hacer experimentos de este estilo: lo miro por encima y decido que voy a ser capaz de montarlo en 1, 2 o 3 horas, según el caso. A la mínima que me quede encallado, ya sea por falta de conocimientos o documentación, lo dejo, ya lo miraré...

En este caso no hubo problemas, documentado, rápido, apenas sin complicaciones... incluso creo que he tardado más en escribir estas líneas =)

Y tu ¿ya has montado tu cluster?


4 comentarios:

Sebastián Greco dijo...

Pues todavía no lo he montado pero sin dudas me dejas con las ganas de probarlo!

Hay tantas cosas con tan buena pinta que al final uno no sabe qué mirar. Gracias por haber dedicado tiempo a mirar este tema y a compartirlo. Me encantó tu post. Seguramente el día que lo vaya a probar (no sé cuando será eso...) utilice este blog como guía :)

Un abrazo Héctor!
Sebas

hmartinezlopez dijo...

Gracias Sebas,

Para mi era esto o aceptar el reto de uno de Cloudera de que en una hora tenía un cluster funcionando con su producto.

De momento me he decantado por la solución de VMware, pero es que necesitaba un Hadoop para hacer pruebas!! =D

A veces es divertido dar un rodeo para llegar a tu destino.


Héctor

Tecnología Big Data Hadoop dijo...

Muy completo el paso a paso Héctor. No soy ningún experto en la materia así que me lo tendré que mirar con calma ya que estoy haciendo un trabajo para la universidad relacionado con todo el universo Big Data.

Me lo leeré con calma a la noche porque creo que esta aplicación tiene mucha miga. Si me surgen dudas y no es mucha molestia acudiré a ti para preguntarte algún detalle.

Muchas gracias por adelantado y feliz día,
Juan.

hmartinezlopez dijo...

Hola Juan,

Por mi estupendo, si puedo ser de ayuda estaré encantado en recibir cualquier consulta.

De todas formas veo que has puesto el enlace de una empresa especialista en datos ¿estás haciendo allí el proyecto de la universidad?

Envíame un correo y lo comentamos.


Un saludo,

Héctor