¿Cómo es que Facebook logra administrar 100 petabytes de datos online?
(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)
Yahoo anuncia el nuevo Flickr
Yahoo confirma la compra de Tumblr por USD$1.10...
Julian Assange asegura que Wikileaks no ha prov...
Pyton S3, un dispositivo que corre Ubuntu, Andr...
Lo mejor de Google I/O 2013 #IO13
Yahoo! y Facebook enfrentadas para adquirir Tumblr
Bill Gates supera a Carlos Slim como el hombre ...
Larry Page y la polémica que despertó contra Mi...
47 Comentarios
¿Cómo es que Facebook logra administrar 100 petabytes de datos online?
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.
ResponderTotalmente de acuerdo
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)
@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
@Pepe_uy sabía Usted estimado que la mayoría de los sistemas de HA son Java??
newfaqs detected
buen articulo FW podria volver a consumir sus feeds
Responderexcelente post, había escuchado de hadoop pero hasta ahora le presto atención.
ResponderInteresante , da gusto saber como realmente se entretejen grandes arquitecturas y que finalmente lo hacen de una manera "MORTAL" - humana.
Responderla caga como hay cabros chicos sin respeto alguno
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.
ResponderHace 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?
Andrew Ryan, pero si te mate en RAPTURE MALDITO!
ResponderEs 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.
ResponderESTAS COSAS son las que da gusto leer en FayerWayer.
ResponderY 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.
exacto por articulos como este es que todos comenzamos a leer fayerwayer
y no por los ultimos, que mas parecen de SQPwayer
Excelente articulo! Esperemos ver más por el estilo... saludos!
ResponderSuper genial info. Muchas gracias!
Responderustedes hablando de este pedazo de basura y salfate esta metale llorando en la tv!
Responderpor fin fayerwayer me pone a leer de nuevo!!!
ResponderGenial : D
ResponderPor fin un articulo interesante y no uno comentando cosas sin importancia de la marca preferida...
Responder@Autor: Estimado lo que ocupa Facebook NO es hadoop, es Cassandra ( http://cassandra.apache.org ), el sistema de Hadoop ya lo dejaron de ocupar.
ResponderHadoop 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.
https://www.facebook.com/notes/facebook-engineering/under-the-hood-hadoop-distributed-filesystem-reliability-with-namenode-and-avata/10150888759153920
ResponderEl dato geek informático de la semana, buen artículo... inteDeZante
Respondermmm 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....
Responderque 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
y en constante crecimiento...hacia falta una articulo geek random hace tiempo...me dieron ganas de averiguar mas sobre apache hadoop
ResponderExcelente artículo. Esperemos que se haga costumbre esta clase de posts :D
ResponderExcelente articulo, me estaba aburriendo de ver tanto comercial de la manzana...
Responderexcelente nota wn ohh!! no tenia idea de eso...
Respondersoy solo una hormiga mas q trabaja con .net
esto del Hadoop es de peces gordos...
.NET ????
:(
to bad!!!
No mires a huevo el .net... la programación super rápida... eso es invaluable
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)
Mientras Mark SUCKerberg logra controlas 100 PETES por segundo OMG !
ResponderWTF!? 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!
ResponderAhora 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.
Excelente nota, Sigan publicando mas de estas !!!
ResponderAyer 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)
ResponderExelente. 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.
Responderestá genial e interesantísimo :) info de calidad, gracias FW
ResponderAndrew Ryan... o si, Bioshock, btw Muy buen articulo!
ResponderPablo: 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.
Respondersaludillos
LOL tambien pense en Bioshock cuando leí el nombre jajaja
ResponderDeja tu Comentario