texto:   A-   A+
eliax

Hadoop HBase, ¿el futuro de bases de datos escalables?
eliax id: 6651 josé elías en may 21, 2009 a las 09:23 PM (21:23 horas)
Si estás planeando crear una aplicación que potencialmente deba escalar a millones de usuarios, o simplemente quieres crear una aplicación que te permita escalar a pequeña escala sin invertir en costosos servidores, debes contemplar la base de datos HBase del proyecto Hadoop de la Fundación Apache (los mismos del popular Servidor Web Apache).

HBase es una base de datos abierta que implementa el concepto de BigTable, que si recuerdan como les expliqué en eliax anteriormente es la tecnología que permite que Google escale toda su infraestructura a centenares de miles de servidores de bajo costo de una manera homogenea, sin las restricciones de una base de datos relacional (como MySQL, Oracle o MS SQL Server).

Mas específicamente, HBase es una base de datos distribuida que permite escalar casi linealmente con simplemente agregar mas servidores al sistema. Para esto HBase puede utilizar opcionalmente una tecnología llamada HDFS (Hadoop Distributed File System) que básicamente es el análogo del GFS (Google File System), que no es mas que un fichero de archivos distribuidos.

Con esta arquitectura es posible lograr no solo altos niveles de rendimiento, sino que además altos niveles de redundancia en datos, ya que a cierto nivel los datos están distribuidos de manera redundante similar a como los datos son distribuidos en un sistema de discos duros con tecnología RAID 5 por ejemplo (aunque esta funcionalidad tengo que aun verificarla personalmente, pero sepan que es parte al menos del concepto original).

Algo importante a notar aquí es que si algo hemos aprendido del Internet, y en particular de Aplicaciones Web, es que en muchos casos la demanda de usuarios es impredecible, en donde una pequeña empresa con una gran idea puede de la noche a la mañana recibir millones de visitas, y para eso mejor estar preparado que perder esas visitas, y es ahí en donde se le verá la importancia a HBase.

Sin embargo, HBase no es solo una base de datos altamente escalable, sino que además es un nuevo paradigma que por fin quizás deje atrás las bases de datos relacionales en muchos casos típicos.

Por décadas hemos dependido de bases de datos relacionales, y estas han sobrevivido las bases de datos de objetos, de XML, y toda variedad bajo el sol, pero gracias a las lecciones que Google le ha dado al mercado con su infraestructura, se ha hecho evidente que esta nueva filosofía de diseñar bases de datos es quizás la mas adaptable para las necesidades de hoy en Internet.

Sin embargo, hay que entender que aunque HBase representa una amenaza a largo plazo tanto para las bases de datos comerciales como Oracle, DB2 o MS SQL Server, así como a las de Código Libre como Postgress o hasta a la misma MySQL, que sin embargo hay situaciones en donde es mejor aun tener una base de datos relacional. ¿Cómo decidir? Este documento te apuntará a los primeros pasos.

Técnicamente, HBase está implementado en Java, por lo que funciona en cualquier plataforma que tenga una máquina virtual de Java, lo que hace a HBase una tecnología fácil de adoptar en entornos de Unix, Linux, Windows y hasta OS X.

Pero quizás una de las mejores noticias sobre esta tecnología es que es Open Source (Código Libre), lo que significa que puede ser utilizado por cualquiera libre y gratuitamente, así como uno poder aportar a su desarrollo o aprender de su código fuente.

Si eres estudiante de informática, no pierdes nada en aprender estos conceptos ahora, y de paso estarás mejor preparado cuando en unos años este tipo de conocimientos se tornarán invaluables y altamente cotizados. Un tip: Puedes iniciar con HBase y Java en una sola PC, y cuando quieras experimentar en modo distribuido es cuando en realidad necesitarás a HDFS.

Nota a técnicos: Una aclaración: Aunque BigTable es relativamente reciente, los conceptos detrás de la técnica no lo son, y ya eran conocidos desde hace al menos unos 20 años atrás en otras formas.

Actualización: Algo importante que no mencioné en el artículo es que Yahoo es posiblemente el contribuidor mas grande a este proyecto, y lo utiliza en decenas de miles de servidores internamente.

Y como siempre, pueden leer mas de mis opiniones y análisis en la sección bajo ese nombre a la derecha de la página principal de eliax.

Página oficial de HBase

Página oficial del proyecto Hadoop

Publicación técnica de Google que explica BigTable

Explicación técnica de HBase y BigTable (buen punto de inicio)

Otra excelente recurso a leer para empezar

Previamente en eliax:

Análisis: El Google App Engine, en mas detalle (Abril 2008 - contiene una breve y mejor introducción a BigTable de la que doy en este artículo de hoy)

autor: josé elías

Comentarios

  • Waoo esta noticia me parese super importantisima porque yo estoy elaborando un proyecto de clases con una pagina web y probare este hbase me parece muy muy buena.

  • 2009 el año Linux

    Te la comite ahi.

  • Excelente post Elias, cuando comenzó a leer este blog lo hice con la intención de encontrar una fuete de información tecnológica, noticias como estas fueron las que me inspiraron a tratar de crear mi propio blog, eliax.com es un buen sitio para aprender cosas nuevas, pero algunas implementaciones de nuevas cosas, no me parecen tan gratificantes, “con todo respecto” (TANTAS PREGUNTAS, TANTO TWITTER) estas sacando el blog de lo que yo pensé que realmente era… pero nada, el respeto al derecho ajeno es la paz, excelente post, y gracias.
    Pa lante, que aún falta mucho por aprender, y mucha información en la red que yo no sabría cómo encontrarla pero tú, nos las pone a un clic de distancia.

  • Aunque algunos artículos no me llaman la atención, creo que la desicion de escribir tus propios post ha sido brillante y me ayuda a disfrutar mucho mas tu blog.

    Elias y hablando de cosas, cómo podría hacer un estudiante de ingeniería mecánica para aprovechar estas herramientas que expones a diario???

  • No hace mucho les hablé acá en eliax de HBase, un nuevo tipo de base de datos que implementa los mismos conceptos básicos que Google utiliza en sus cientos de miles de servidores para crear aplicaciones que escalan masivamente a millones de usuarios.

    H

  • El documento que apunta a los primeros pasos no esta disponible,para distinguir en cuales casos seria mejor un base de datos relacional, como lo puedo conseguir?

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
2 + 5 = requerido (control anti-SPAM)
 

"De una manera inesperada, y creo que sin darte cuenta, tienes mas hijos de los que crees.

Gracias hermano!
"

por "Jose R." en feb 10, 2014


en camino a la singularidad...

©2005-2014 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax