Hortonworks

Introducción


Para trabajar con grandes volúmenes de datos las soluciones tradicionales como bases de datos transaccionales dejan de ser factibles. En estos casos hay que recurrir a un nuevo enfoque basado en computación distribuida, dentro de la cual la solución más ampliamente utilizada es Hadoop. Este es un framework que cuenta con todos los componentes necesarios para trabajar en un único ambiente de trabajo. Antes de continuar con este post, si no están familiarizados con Hadoop les recomiendo leer mi anterior post Qué es Hadoop? | Introducción e Instalación. Ahora bien, ¿como podemos hacer desarrollos o si quiera aprender a utilizar esta tecnología si no poseemos un cluster configurado? Hemos visto en el post anterior, que realizar una instalación de Hadoop desde cero no es algo simple, y en general no es algo que vayamos a necesitar realizar por nosotros mismos. Entonces, ¿hay forma de prepara un entorno de trabajo de manera simple? La respuesta es que sí, y en este post veremos como.

Hortonworks


Para prepara un entorno de trabajo realmente no hay que hacer más que descargar una maquina virtual (MV) que ya posea Hadoop instalado y luego realizar unas pocas configuraciones. A este tipo de MV (que ya poseen software instalado y listo para usar) se las denomina Sandbox. ¿Pero de donde sacamos un Sandbox de Hadoop? La respuesta es que en estos momento existen dos grandes proveedores. Uno es Hortonworks y el otra es Cloudera. Yo en este post voy a mostrar como trabajar con Hortonworks, dado que es el que siempre utilicé y conozco mejor, aunque hay que aclara que realmente no hay grandes diferencias entre ambas. Entonces, comenzamos por descargar el Sandbox entrando al sitio web de Hortonworks y yendo a Products → Download → Sandbox. Luego a la sección Hortonworks Data Platform y seleccionamos la descarga para el virtualizador que utilicemos (VirtualBox o VMware). En mi caso selecciono VMware. Luego nos pide algunos datos y nuestro correo para comenzar a enviarnos spam, y finalmente comienza la descarga. La descarga ocupa cerca de 10Gb por lo que hay que tener algo de paciencia hasta que termine. Cuando finaliza la descarga obtenemos un archivo con formato .ova que es un generador de MV para VMware. Luego le damos doble click a este, y finalmente a import y esperamos a que termine de crearse la MV. Finalizada la creación de la MV procedemos a encenderla y esperar que esté lista para ser utilizada. Cuando esto ocurra vemos que aparece la siguiente pantalla, en la que se nos indica la IP y el puerto para conectarnos mediante un explorador web.     Y ya tenemos listo el entorno de trabajo. Así de simple. Ahora veamos como acceder a las herramientas que provee el Sandbox. Para esto vamos a ADVANCE HDP, en donde vemos una serie de componentes, entre los cuales los más importantes son AMBARI y el cliente SSH. Cada uno de estos tiene asociado puerto mediante el cual lo accedemos. Por ejemplo, el puerto para acceder a Ambari es el 8080.

Ambari


Ambari es una plataforma para administración, aprovisionamiento y monitoreo de Hadoop. A través de esta podemos realizar configuraciones de Hadoop y todos sus componentes. También posee un administrador de archivos, un cliente para trabajar con HIVE y con PIG, y varias herramientas más. No obstante, todas las herramientas que brinda poseen un overhead importante que ralentiza las tareas, por lo cual yo prefiero trabajar siempre que sea posible desde la linea de comando mediante SSH,

Linea de comandos


Para poder acceder a una linea de comandos del Sandbox lo hacemos como con cualquier otra computadora. Si utilizamos Linux (o Putty en Windows) basta con indicar que queremos utilizar SSH sobre la IP indicada y el puerto 22. Pero en el caso de Windows tenemos integrado un cliente de linea de comando en el explorador web que en mi caso particular encuentro muy cómodo. Para acceder a él ponemos en el explorador la IP y el puerto 4200. Independientemente de como entremos, la primer vez que nos logueamos debemos usar “username/password: root / hadoop”. Una vez dentro, se nos pide cambiar la clave, y hecho esto podemos comenzar a trabajar con toda libertad. Podemos trabajar con el HDFS, con Hive, con Spark, etc. Por ejemplo, si queremos trabajar con Hive basta con ingresar a este desde la linea de comando. Por defecto la instalación trae un par de “bases de datos” que podemos usar para pruebas.

HDInsignt (Azure)


¿Para que nos serviría poder tener este entorno de trabajo? La razón principal es para hacer desarrollo en una computadora local y después realizar el paso a producción sin insumir costos de desarrollo elevados. Por ejemplo, si tomamos el caso de la plataforma de Microsoft (Azure), posee un servicio llamados HDInsight que básicamente es un cluster Hadoop desarrollado por Hortonworks. Este es similar al Sandbox del cual estuvimos hablando, salvo por el hecho clave de que al momento de crearlo podemos indicar el tamaño del cluster. Como normalmente en trabajos con grandes volúmenes de datos se requiere de varias computadoras de potencia y memoria moderada a grande, y dado que en la nube se paga por tiempo que se utilizan los recursos, resulta inviable hacer un desarrollo directo en la nube. En cambio, el procedimiento habitual es hacer los desarrollos en una computadora local (trabajando con una muestra de los datos si es necesario) y luego que se tiene el sistema funcionando en local se implementa en la nube configurando el cluster para que se cree, haga lo que tenga que hacer y se destruya automáticamente, evitando que esté encendido y sin uso (lo cual es igual a tirar dinero).  

Comentarios

0 Comments

Submit a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.