Searching...
martes, 26 de julio de 2016

Fundamentos informáticos de Big Data #1

A partir de la próxima semana comenzaremos a sumergirnos en los detalles del framework de Hadoop para Big Data. Pero antes de empezar quiero dedicar un poco de tiempo a que entiendas algunos conceptos básicos que te ayudarán a digerir mejor y más rápido la información sobre Hadoop.
Sistema de Ficheros Distribuidos
Supongamos que estamos asistiendo a un laboratorio de química. Antes de empezar a escuchar sobre tubos y mezclas, lo que necesitarías entender en sí es la química o la teoría de los conceptos prácticos del laboratorio. De manera similar, aprender estos conceptos de los que voy a tratar a continuación te ayudará a entender los conceptos prácticos de los próximos artículos de Hadoop.

Además, mi intención es prepararte para entender otras herramientas aparte de Hadoop. Cualquier sistema de Big Data con el que te encuentres estará basado en estos conceptos básicos de los que voy a hablarte, por lo que estos fundamentos te ayudarán en tu camino.

¡Comencemos ya!

¿Que es un Sistema Distribuido de Ficheros?

Casi todos tenemos archivadores en nuestras casas u oficinas que nos ayudan a almacenar nuestros documentos impresos. Todo el mundo tiene su propio método de organizar ficheros, incluyendo la forma en que guardamos documentos similares en un único fichero, o la forma en que los ordenamos por orden alfabético o por fecha. Cuando surgieron los ordenadores, la información y los programas se almacenaban en tarjetas perforadas. Estas tarjetas perforadas se almacenaban en archivadores, al igual que los archivadores físicos en la actualidad. Aquí es donde surge el nombre de Sistema de Ficheros (file system).

La necesidad de almacenar información en ficheros proviene de una necesidad mayor de almacenar información a largo plazo. De esta manera la información persiste después de que el programa de ordenador - o lo que llamamos proceso - que la produce, termine. Sin ficheros no tendríamos posibilidad de acceder a dicha información una vez que el programa la use o la produzca. Incluso durante el proceso podríamos necesitar almacenar grandes cantidades de información que no se puede almacenar dentro de los componentes del programa o de la memoria del ordenador. Además, una vez que los datos están en un fichero, múltiples procesos pueden acceder a la misma información si es necesario.

Por todas estas razones almacenamos la información en los ficheros de un disco duro. Existen muchos de estos ficheros, que son administrados por el sistema operativo, como Windows o Linux. La forma en que el sistema operativo administra los ficheros es lo que llamamos un sistema de ficheros (file system). La forma en que se almacena esta información en las unidades de disco tiene un impacto alto en la eficiencia y en la velocidad de acceso a los datos, sobre todo en el caso de Big Data.

Aunque los ficheros tienen direcciones exactas para sus ubicaciones en la unidad, las referencias a los datos se hacen mediante secuencia de bloques (lo que llamamos la estructura plana de los datos) o mediante la estructura jerárquica de registros de índice (lo que llamamos la base de datos). También tienen nombres simbólicos legibles por humanos, normalmente seguidos de una extensión. Por norma general, las extensiones indican de que tipo de fichero se trata. Los programas y los usuarios pueden acceder a los ficheros con sus nombres. El contenido de un fichero puede ser numérico, alfabético, alfanumérico o ejecutables binarios.

La mayoría de los usuarios trabaja con ordenadores personales portátiles o de escritorio con un único disco duro. En este modelo, el usuario está limitado a la capacidad de su disco duro. La capacidad de los diferentes dispositivos puede variar. Por ejemplo, mientras que nuestro teléfono o tableta puede tener una capacidad de almacenamiento en el orden de gigabytes, el ordenador portátil puede tener un terabyte de almacenamiento, pero ¿que pasa si tenemos más datos? Seguramente algunos de nosotros hemos tenido problemas en el pasado al quedarnos sin espacio en el disco duro. Una manera de resolver esto es almacenar nuestros ficheros en un disco duro externo, o bien, podemos comprar un disco más grande. Las dos opciones suponen una ligera molestia al tener que copiar los datos a un nuevo disco, ¿verdad? Incluso puede que algunas veces no sea lo mejor.

Ahora supongamos que tenemos dos ordenadores y que almacenamos parte de nuestros datos en uno y el resto de los datos en otro. La forma en que organizamos y particionamos los datos entre estos equipos depende de nosotros. Es posible que queramos almacenar nuestros datos de trabajo en un ordenador y nuestros datos personales en el otro. Una opción posible puede ser distribuir los datos en múltiples equipos, pero esto plantea nuevos problemas. En esta situación, necesitamos saber donde encontrar los ficheros que necesitamos, dependiendo de lo que estemos haciendo. Esto puede ser razonable si solo se trata de nuestros datos.

Pero supongamos ahora que tenemos miles de ordenadores donde almacenar nuestros datos de gran volumen y variedad. ¿No seria bueno tener un sistema que pueda gestionar por nosotros el acceso a los datos? Este es el caso que puede ser administrado por un sistema distribuido de ficheros.

Ahora vamos a suponer que tenemos bastidores de estos equipos (racks), normalmente incluso distribuidos a través de la red de área local o la red de banda ancha. Estos sistema de ficheros se denominan sistemas de ficheros distribuidos.

Podemos replicar los conjuntos de datos o partes de un conjunto de datos por todos los nodos de un sistema distribuido de ficheros. Puesto que los datos ya se encuentran en estos nodos, se necesita entonces un análisis en paralelo de partes de los datos, desplazando el procesamiento a estos nodos. Además, los sistemas de ficheros distribuidos replican los datos entre los racks y también entre ordenadores distribuidos por todas las regiones geográficas. Las réplicas de datos hacen que el sistema sea más tolerante a fallos. Esto significa que si un rack o algún nodo se cae, existen otras partes del sistema donde se pueden encontrar y analizar los mismos datos. Las réplicas de datos también ayudan al escalado del acceso a estos datos por parte de muchos usuarios. Si los datos son populares, muchos procesos lectores querrán tener acceso a ellos. En una réplica altamente paralelizada, cada lector puede obtener su propio nodo para acceder y analizar los datos. Esto aumenta el rendimiento general del sistema. Ten en cuenta que un problema de tener réplicas tan distribuidas es que complica el mantenimiento de los datos con el paso del tiempo. Sin embargo, en la mayoría de los sistemas Big Data, los datos se escriben una vez y las actualizaciones en los datos se mantienen como conjunto de datos adicionales con el tiempo.

Resumiendo:

Un sistema de ficheros es responsable de la organización del almacenamiento de información a largo plazo en un ordenador. Cuando muchos equipos de almacenamiento se conectan a través de la red, lo denominamos sistema de ficheros distribuidos. Los sistemas de ficheros distribuidos proporcionan escalabilidad de datos, tolerancia a fallos y alta concurrencia mediante el particionamiento y las replicas de datos sobre muchos nodos. 

0 comentarios:

Publicar un comentario

Gracias por participar en esta página.

 
Back to top!