Hadoop: Sistema de Archivos Distribuidos Resumen de Exposición — Sistemas de Operaciones II Alessandro Chacón Ernesto Level Ricardo Santana 05-38019 05-38402 05-38928 En 2006 se estimó que el tamaño del Universo Digital —información que es creada o capturada de forma digital, y luego es replicada— se ubicó en 161 exabytes* , ascendiendo a 988 exabytes para el 2010, esto representa un crecimiento de 6 veces su tamaño. Y se estima que para el 2020 su tamaño será de 35 zettabytes, es decir que incrementará 35 veces su tamaño [1]. Dı́a a dı́a se generan millones de bytes en información, haciendo que el tamaño del Universo Digital crezca de manera exponencial, por ejemplo: La Bolsa de Valores de Nueva York genera diariamente un terabyte de datos. Facebook mantiene alrededor de 10 billones de fotografı́as, ocupando un petabyte de datos. La librerı́a digital The Internet Archive maneja aproximadamente 2 petabytes de datos, y crece a razón de 20 terabytes por mes. Manejar datos cuyo tamaño crece en tal medida acarrea un problema: la capacidad y velocidad de lectura de los discos duros. Aunque la capacidad de los discos se ha incrementado en gran medida a lo largo de los años, la velocidad de estos no le ha llevado el mismo ritmo. En 1990 un disco duro podı́a almacenar alrededor de 1370 MB de datos y transferı́a a 4.4 MB/s, pudiendo leer todo el disco en unos cinco minutos. Hoy dı́a, con un disco de 2 TB transfiriendo a 200 MB/s tomarı́a más de dos horas y media en leerlo todo [2]. Una solución serı́a tener 100 discos, donde cada uno mantendrı́a una centésima de los datos, de tal manera que se podrı́a leer la información de todos los discos paralelamente en menos de dos minutos. * 1 TB (terabyte) = 1012 B 1 EB (exabyte) = 1015 B 1 PT (petabyte) = 1018 B 1 ZB (zettabyte) = 1021 B 1 Sin embargo, esta solución genera otros problemas. El primero de ellos es la falla en hardware, a medida que se usa más hardware, la posibilidad que alguno falle se incrementa. La replicación redundante de datos es una solución razonable para evitar la pérdida de estos, de esta manera funciona HDFS (Hadoop Distributed File System). El segundo problema es que serı́a deseable combinar datos que se encuentran en discos duros distintos, y realizar esto de manera correcta y eficiente puede resultar bastante complejo. Una manera de llevar a cabo esta tarea es con MapReduce, el cual es un framework inspirado en las funciones map y reduce comúnmente utilizadas en los lenguajes funcionales. Esto es lo que Hadoop provee: un sistema confiable de almacenamiento y análisis distribuido. El almacenamiento lo provee HDFS, y el análisis MapReduce. Hadoop es un framework en Java de software libre creado por Doug Cutting y promovido por Apache Software Foundation, realizado especialmente para soportar aplicaciones que manejan grandes volúmenes de datos de manera distribuida. Permite manejar aplicaciones que utilicen miles de nodos y petabytes de datos. Este framework se inspiró de la creación de GFS (Google File System) y MapReduce de Google. La exposición se desarrollará sobre una descripción a fondo de Hadoop y cómo éste opera, el sistema de archivos HDFS diseñado especialmente para Hadoop y el framework MapReduce utilizado para el análisis de grandes volúmenes de datos. Ası́ como las ventajas y desventajas que esta herramienta ofrece. Referencias Bibliográficas [1] GANTZ, John F. The Expanding Digital Universe. Estados Unidos: IDC White Paper, 2007. [2] WHITE, Tom. Hadoop: The Definitive Guide. 1ra ed. Estados Unidos: O’Reilly, 2009. [3] Apache Hadoop Project. Apache Software Foundation. http://hadoop.apache.org/ 2