Temas Calientes

¿Cómo es que Facebook logra administrar 100 petabytes de datos online?

(cc) flickr vaxomatic

(cc) flickr vaxomatic

La respuesta es: Apache Hadoop. No es un secreto que la red social Facebook almacena miles y miles de datos, exactamente unos 100 petabytes (100 millones de Gigabytes) hasta el momento. Tampoco es desconocido, por lo menos por los geeks más curiosos, que Facebook utiliza Apache Hadoop para administrar esos datos y lograr que estén disponibles en milésimas de segundos cada vez que son requeridos.

Apache Hadoop es un framework de software para aplicaciones distribuídas, bajo licencia de software libre. El proyecto Hadoop es un desarrollo de alto nivel Apache que ha crecido con el aporte comunitario del grupo de desarrolladores que lo conforman, entre los que se destacó siempre uno de sus principales usuarios y aportantes: Yahoo!

Este framework permite correr aplicaciones en grandes clusters de hardware dedicado utilizando una arquitectura donde la aplicación se divide en muchos pequeños fragmentos de trabajo, cada uno de los cuales se pueden ejecutar o volver a ejecutar en cualquier nodo del clúster

En la actualidad empresas como AOL, eBay, Fox, IBM, LinkedIn o Twitter entre otras, utilizan Hadoop como solución para sus plataformas multiusuario.

Durante el día de hoy se realizó la primera de dos jornadas de la Cumbre Hadoop, en San José California, donde uno de los ingenieros de Facebook, Andrew Ryan, destacó que la solución a uno de los principales problemas que suele presentar Hadoop fue resuelto con una solución propia.

El problema de Hadoop se llama NameNode, un servicio en la arquitectura Hadoop que, según detallan en GigaOm, “maneja todas las operaciones de metadatos con el sistema de archivos distribuidos, pero que sólo se ejecuta en un único nodo. Si el nodo se cae, también lo hace, para todos los efectos, Hadoop, porque nada basado en HDFS (sistema de archivos propio de Hadoop) se logra ejecutar 100% correctamente”.

Andrew Ryan destacó que la solución de Facebook al problema de disponibilidad generado por NameNode se llama AvatarNode. Ryan comentó que comenzó a construir AvatarNode hace unos dos años (el nombre fue inspirado por el film de James Cameron) y que ahora está en producción.

La función de AvatarNode es sustituir a NameNode con una arquitectura de dos nodos, en la que uno actúa como una versión de espera si el otro baja. En la actualidad, el proceso de conmutación por error es manual, pero Ryan aseguró que “estamos trabajando para mejorar aún más AvatarNode e integrarlo con un marco general de alta disponibilidad que nos permita la conmutación por error desatendida, automatizada y segura.”

La solución de Facebook no es la definitiva ni la mejor que se pueda lograr de momento para la limitación de NameNode, pero según aclara Ryan, a pesar de que sólo el 10% de las paradas no planificadas de Facebook podrían evitarse con AvatarNode, más del 50% de los tiempos de inactividad planificados para el futuro podrán ser tolerados por esta arquitectura de alta demanda.

Facebook no es la única empresa en resolver este problema. La empresa Appistry presentó un sistema de archivos totalmente distribuido hace un par de años que incluía la distribución de Hadoop MAPR, el cual también proporciona un sistema de archivos de alta disponibilidad.

En tiempos de mega redes de datos y servicios en la nube, conocer desarrollos como éstos y que estén diseñados en plataformas libres nos permite tener un mejor panorama de lo que vendrá en el futuro de la distribución y administración de datos a gran escala.

Link: How Facebook keeps 100 petabytes of Hadoop data online (gigaom)

47 Comentarios

¿Cómo es que Facebook logra administrar 100 petabytes de datos online?

Thumb up 221 Thumb down 3 avatar_Ricardo Ricardo dijo hace 12 meses

Algunos se quejan que fayerwayer ya no habla de tecnología. Pero cuando lo hace nadie comenta. Es como el que pide más cultura en la tv pero ve puro yingo.

Responder
Thumb up 54 Thumb down 4 avatar_Christian Christian dijo hace 12 meses

Totalmente de acuerdo

Thumb up 40 Thumb down 11 avatar_Pepe_uy Pepe_uy dijo hace 12 meses

concuerdo, y agrego algo que no se comento, el desarrollo que hicieron para que corra partes de php como codigo c++ (HipHop for PHP es un transformador de código PHP en código C++, creo que el desarrollo es de facebook)

Ahora, imaginense por un minuto facebook corriendo en java (minimo 1 hora para ver las notificaciones jejejeje)

Thumb up 13 Thumb down 2 avatar_frok frok dijo hace 12 meses

@Pepe_uy como dijo sss y como sale en la wikipedia "Hadoop es un proyecto de alto nivel Apache que está siendo construido y usado por una comunidad global de contribuidores, mediante el lenguaje de programación JAVA" java java java lol

Thumb up 1 Thumb down 1 avatar_MasterCracker3d MasterCracker3d dijo hace 12 meses

@Pepe_uy sabía Usted estimado que la mayoría de los sistemas de HA son Java??

Thumb up 15 Thumb down 4 avatar_asd asd dijo hace 12 meses

newfaqs detected

Thumb up 45 Thumb down 1 avatar_asdf asdf dijo hace 12 meses

buen articulo FW podria volver a consumir sus feeds

Responder
Thumb up 8 Thumb down 2 avatar_obligatorio obligatorio dijo hace 12 meses

excelente post, había escuchado de hadoop pero hasta ahora le presto atención.

Responder
Thumb up 10 Thumb down 1 avatar_Sergio Sergio dijo hace 12 meses

Interesante , da gusto saber como realmente se entretejen grandes arquitecturas y que finalmente lo hacen de una manera "MORTAL" - humana.

Responder
Thumb up 23 Thumb down 4 avatar_nano nano dijo hace 12 meses

la caga como hay cabros chicos sin respeto alguno

Thumb up 9 Thumb down 1 avatar_CarlosMC CarlosMC dijo hace 12 meses

Buen articulo, por fin en FW algo de tecnología real y, mejor aun, con un articulo un poco mas extenso que lo normal hoy por hoy.

Hace tiempo tengo como pendiente meterme en el tema de Hadoop y ver en que nos puede beneficiar a los desarrollos propios...

¿alguien ha tenido alguna experiencia con hadoop?

Responder
Thumb up 15 Thumb down 5 avatar_Steve Works Steve Works dijo hace 12 meses

Andrew Ryan, pero si te mate en RAPTURE MALDITO!

Responder
Thumb up 3 Thumb down 3 avatar_todoparaface todoparaface dijo hace 12 meses

Es asombroso como logran almacenar tantos datos pero como recordaran esta red social genera muy bueno ingresos por eso lo de los servidores no es un problema, mas aun cuando son datos estaticos como imagenes videos, ya con lo de las bases de datos es algo mas complejo porque usan mas recursos.

Responder
Thumb up 20 Thumb down 0 avatar_Pedro Pedro dijo hace 12 meses

ESTAS COSAS son las que da gusto leer en FayerWayer.

Y de pasada, son estas cosas, innovación, cosas prácticas que se pueden utilizar en el mundo real y que ayudan a todo el mundo, son las deberían generar valor en una empresa. No venderle los datos a medio planeta.

Responder
Thumb up 2 Thumb down 0 avatar_mike mike dijo hace 12 meses

exacto por articulos como este es que todos comenzamos a leer fayerwayer
y no por los ultimos, que mas parecen de SQPwayer

Thumb up 4 Thumb down 0 avatar_german german dijo hace 12 meses

Excelente articulo! Esperemos ver más por el estilo... saludos!

Responder
Thumb up 3 Thumb down 0 avatar_qwerty qwerty dijo hace 12 meses

Super genial info. Muchas gracias!

Responder
Thumb up 4 Thumb down 6 avatar_ricardo ricardo dijo hace 12 meses

ustedes hablando de este pedazo de basura y salfate esta metale llorando en la tv!

Responder
Thumb up 12 Thumb down 0 avatar_juancito juancito dijo hace 12 meses

por fin fayerwayer me pone a leer de nuevo!!!

Responder
Thumb up 2 Thumb down 0 avatar_Sergio Enrique89 Sergio Enrique89 dijo hace 12 meses

Genial : D

Responder
Thumb up 8 Thumb down 0 avatar_Arturo Arturo dijo hace 12 meses

Por fin un articulo interesante y no uno comentando cosas sin importancia de la marca preferida...

Responder
Thumb up 2 Thumb down 1 avatar_Sebastian Sebastian dijo hace 12 meses

@Autor: Estimado lo que ocupa Facebook NO es hadoop, es Cassandra ( http://cassandra.apache.org ), el sistema de Hadoop ya lo dejaron de ocupar.

Hadoop es herencia mas de Google que de Facebook, Google lanzo un paper el 2006 donde explicaban como trabajan ellos su procesamiento de logs y de ahi nacio Bigtable (GoogleFilesystem y Mapreduce ) http://research.google.com/archive/bigtable.html y desde ese proyecto se desprendio Hadoop
El articulo es interesante, pero creo que le falto un poco de investigacion al autor ya que tecnicamente hadoop es la suma de 2 cosas , HDFS (Haddop Filesystem) que es un sistema de archivos distribuido y con redundancia por Quorum. y MapReduce, que es la capacidad de lanzar jobs de procesamiento sobre ese sistema de Archivos.

Responder
Thumb up 0 Thumb down 0 avatar_Raymundo Raymundo dijo hace 12 meses

https://www.facebook.com/notes/facebook-engineering/under-the-hood-hadoop-distributed-filesystem-reliability-with-namenode-and-avata/10150888759153920

Responder
Thumb up 4 Thumb down 2 avatar_Tu hermana Tu hermana dijo hace 12 meses

El dato geek informático de la semana, buen artículo... inteDeZante

Responder
Thumb up 4 Thumb down 1 avatar_miguel miguel dijo hace 12 meses

mmm viendo todas las grandes empresas que se mencioraron creadas en php y el software libre apache y mysql por incluir algunos....estoy en el lado oscuro de la programación junto a C#, asp.net mvc y sql server (o.O)...uff lo unico que me da a pensar esto es que con la tecnologia de microsoft no podre a optar a crear una gran solución, ya que la mayoria de las grandes ideas y webs se fundan con el codigo php y demases... una pena la verdad. Bueno habra que empezar a estudiar ese mundo solamente....

Responder
Thumb up 1 Thumb down 3 avatar_porlachucha porlachucha dijo hace 12 meses

que idiota eres.. crear una gran solucion.. ya esta todo creado.. por lo demas.. da lo mismo trabajar en php o en .net.. con sql, oracle, o mysql.. esa guerrita idiota de que uno es mejor que otro.. es solo para los weones intolerantes e incapaces que al no saber de un tema tiran mierda al que si los sabe.. me indignanssss

Thumb up 0 Thumb down 0 avatar_simonpsx simonpsx dijo hace 12 meses

y en constante crecimiento...hacia falta una articulo geek random hace tiempo...me dieron ganas de averiguar mas sobre apache hadoop

Responder
Thumb up 2 Thumb down 0 avatar_Rodolfo Rodolfo dijo hace 12 meses

Excelente artículo. Esperemos que se haga costumbre esta clase de posts :D

Responder
Thumb up 3 Thumb down 0 avatar_Julio Julio dijo hace 12 meses

Excelente articulo, me estaba aburriendo de ver tanto comercial de la manzana...

Responder
Thumb up 1 Thumb down 0 avatar_DeaminiuM DeaminiuM dijo hace 12 meses

excelente nota wn ohh!! no tenia idea de eso...

soy solo una hormiga mas q trabaja con .net

esto del Hadoop es de peces gordos...

Responder
Thumb up 3 Thumb down 0 avatar_Leuyim Leuyim dijo hace 12 meses

.NET ????

:(

to bad!!!

Thumb up 0 Thumb down 1 avatar_Claudio Claudio dijo hace 12 meses

No mires a huevo el .net... la programación super rápida... eso es invaluable

Thumb up 1 Thumb down 0 avatar_porlachucha porlachucha dijo hace 12 meses

lo dicho... te apuesto a que este saco webas de leuyim no sabe hacer ni ni conectarse a una BD sql con .net.. y el muy baboso opina que .net "TO"??? bad... (ademas de ni saber ingles el pajaron)

Thumb up 0 Thumb down 0 avatar_TrollHunter TrollHunter dijo hace 12 meses

Mientras Mark SUCKerberg logra controlas 100 PETES por segundo OMG !

Responder
Thumb up 0 Thumb down 1 avatar_Pablo Pablo dijo hace 12 meses

WTF!? Desde las primeras versiones alpha de HDFS (el componente que hace de filesystem distribuido de Hadoop) existió la posibilidad de ejecutar mas de una instancia del NameNode para que en caso de que el primero falle por cualquier motivo, tome el control el segundo. Y lo digo porque es un feature que USAMOS desde el 2009 como mínimo!

Ahora bien el VERDADERO punto débil no atendido aún es que cada uno de estos NameNode mantienen en memoria toda la metadata (nombres de archivos y estructuras de directorios, atributos y permisos de los mismos, etc.) del filesystem distribuido completo, con lo cual limita la escalabilidad de todo el cluster HDFS en función de la memoria RAM física disponible en el nodo que ejecuta el NameNode, lo cual claramente es indeseable en una arquitectura que se supone debe ser capaz de escalar horizontalmente.

Responder
Thumb up 0 Thumb down 0 avatar_Guishe Guishe dijo hace 12 meses

Excelente nota, Sigan publicando mas de estas !!!

Responder
Thumb up 0 Thumb down 0 avatar_LQS-NAF LQS-NAF dijo hace 12 meses

Ayer publiqué un comentario y no apareció (censura en FY?)..en fin...Facebook abandonó Cassandra en 2010 y lo reemplazó por HBase, que es Hadoop. Anyway, da lo mismo!. Para una empresa normal es dificil superar los 10 TB que es donde comenzaria el "Big Data". Mientras tanto, seguimos con BD tradicionales, herramientas para consultas SQL (que Hadoop no tiene) y una real consistencia de los datos (que tampoco la asegura Hadoop). Vease http://wiki.apache.org/hadoop/HadoopIsNot (letra F)

Responder
Thumb up 0 Thumb down 0 avatar_DobleNueve DobleNueve dijo hace 12 meses

Exelente. Un buen artículo hace que los usuarios comenten y complementen. Muy muy bueno! aunque yo no tengo ningún aporte porque no soy informático. Pero bueno... muy bueno.

Responder
Thumb up 2 Thumb down 0 avatar_Richard Richard dijo hace 11 meses

está genial e interesantísimo :) info de calidad, gracias FW

Responder
Thumb up 1 Thumb down 0 avatar_Someone Someone dijo hace 11 meses

Andrew Ryan... o si, Bioshock, btw Muy buen articulo!

Responder
Thumb up 0 Thumb down 0 avatar_gonzalo gonzalo dijo hace 11 meses

Pablo: Apache no guarda los datos, los sirve. Alojarse se alojan en discos, mas que probable en un Storage. Quizas era mejor presentar la nota con otro nombre.

saludillos

Responder
Thumb up 0 Thumb down 0 avatar_Javier Rios Javier Rios dijo hace 11 meses

LOL tambien pense en Bioshock cuando leí el nombre jajaja

Responder

Deja tu Comentario

La opción de comentar está abierta a todos los usuarios, pero te pedimos por favor mantenerte dentro del tema del artículo y no publicar comentarios ofensivos o publicidad basura. Nos reservamos el derecho de eliminar cualquier comentario que no cumpla estas reglas.

Para que aparezca tu foto en vez del icono genérico en tu comentario, el email con el que comentas debe estar inscrito en Gravatar.

*