Escolar Documentos
Profissional Documentos
Cultura Documentos
Beneficios de SOA:
Arquitectura de Facebook
Sobre los recursos provisionados para cada uno de estos componentes, se conocen
algunos nmeros e informacin:
A qu se refiere la distribucin?
La distribucin se refiere a la construccin de software por partes, a las cuales le son
asignadas un conjunto especfico de responsabilidades dentro de un sistema. Esta
distribucin como bien enunciaba la definicin formal, habla de que las partes o
componentes se encuentran en entornos separados, sin embargo, lo que tiene implcito
esta definicin, es que para realizar esta separacin fsica primero debe tenerse clara la
separacin lgica de las partes de una aplicacin, esto quiere decir que
programticamente existe una forma de separar o agrupar los componentes.
1. Aplicaciones de una Capa: Las capas dentro de una arquitectura son nada ms que un
conjunto de servicios especializados que pueden ser accesibles por mltiples clientes y
fcilmente reutilizables.
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 ms curiosos,
que Facebook utiliza Apache Hadoop para administrar esos datos y lograr que estn
disponibles en milsimas de segundos cada vez que son requeridos.
En la actualidad empresas como AOL, eBay, Fox, IBM, LinkedIn o Twitter entre otras,
utilizan Hadoop como solucin para sus plataformas multiusuario.
Arquitectura HADOOP
Hadoop consiste bsicamente en el Hadoop Common, que proporciona acceso a los
sistemas de archivos soportados por Hadoop. El paquete de software The Hadoop
Common contiene los archivos .jar y los scripts necesarios para ejecutar Hadoop. El
paquete tambin proporciona cdigo fuente, documentacin, y una seccin de
contribucin que incluye proyectos de la Comunidad Hadoop.
Una funcionalidad clave es que, para la programacin efectiva de trabajo, cada sistema
de archivos debe conocer y proporcionar su ubicacin: el nombre del rack (ms
precisamente, del switch) donde est el nodo trabajador. Las aplicaciones Hadoop
pueden usar esta informacin para ejecutar trabajo en el nodo donde estn los datos y, en
su defecto, en el mismo rack/switch, reduciendo as el trfico de red troncal (backbone
traffic). El sistema de archivos HDFS usa esto cuando replica datos, para intentar
conservar copias diferentes de los datos en racks diferentes. El objetivo es reducir el
impacto de un corte de energa de rack o de fallo de interruptor de modo que incluso si se
producen estos eventos, los datos todava puedan ser legibles.
Un clster tpico Hadoop incluye un nodo maestro y mltiples nodos esclavo. El nodo
maestro consiste en jobtracker (rastreador de trabajo), tasktracker (rastreador de tareas),
namenode (nodo de nombres), y datanode (nodo de datos). Un esclavo o compute node
(nodo de cmputo) consisten en un nodo de datos y un rastreador de tareas. Hadoop
requiere tener instalados entre nodos en el clster JRE 1.6 o superior, y SSH.
Sistemas de archivos
Hadoop Distributed File System
El Hadoop Distributed File System (HDFS) es un sistema de archivos distribuido,
escalable y porttil escrito en Java para el framework Hadoop. Cada nodo en una
instancia Hadoop tpicamente tiene un nico nodo de datos; un clster de datos forma el
clster HDFS. La situacin es tpica porque cada nodo no requiere un nodo de datos para
estar presente. Cada nodo sirve bloques de datos sobre la red usando un protocolo de
bloqueo especfico para HDFS. El sistema de archivos usa la capa TCP/IP para la
comunicacin; los clientes usan RPC para comunicarse entre ellos. El HDFS almacena
archivos grandes (el tamao ideal de archivo es de 64 MB ), a travs de mltiples
mquinas. Consigue fiabilidad mediante replicado de datos a travs de mltiples hosts, y
no requiere almacenamiento RAID en ellos. Con el valor de replicacin por defecto, 3, los
datos se almacenan en 3 nodos: dos en el mismo rack, y otro en un rack distinto. Los
nodos de datos pueden hablar entre ellos para reequilibrar datos, mover copias, y
conservar alta la replicacin de datos. HDFS no cumple totalmente con POSIX porque los
requerimientos de un sistema de archivos POSIX difieren de los objetivos de una
aplicacin Hadoop, porque el objetivo no es tanto cumplir los estndares POSIX sino la
mxima eficacia y rendimiento de datos. HDFS fue diseado para gestionar archivos muy
grandes.9 HDFS no proporciona Alta disponibilidad.
HDFS: El sistema propio de Hadoop. Est diseado para la escala de decenas petabytes
de almacenamiento y funciona sobre los sistemas de archivos de base.
Amazon S3. ste se dirige a clusters almacenados en la infraestructura del servidor bajo
demanda Amazon Elastic Compute Cloud. No hay conciencia de racks en este sistema de
archivos, porque todo l es remoto.
CloudStore (previamente llamado Kosmos Distributed File System), el cual es consciente
de los racks.
FTP: ste almacena todos sus datos en un servidor FTP accessible remotamente.
HTTP y HTTPS de solo lectura.
Hadoop puede trabajar directamente con cualquier sistema de archivos distribuido, el cual
puede ser montado por el sistema operativo subyacente simplemente usando la URL
file://, sin embargo, esto tiene un precio: la prdida de la localidad. Para reducir el trfico
de red, Hadoop necesita saber qu servidores estn ms prximos a los datos; esta
informacin la pueden proporcionar los puentes especficos del sistema de archivos
especfico de Hadoop.
El rastreador de trabajos (Job Tracker) impulsa el trabajo fuera a los nodos Task Tracker
disponibles en el clster, intentando mantener el trabajo tan cerca de los datos como sea
posible. Con un sistema de archivos consciente del rack en el que se encuentran los
datos, el Job Tracker sabe qu nodo contiene la informacin, y cules otras mquinas
estn cerca. Si el trabajo no puede ser almacenado en el nodo actual donde residen los
datos, se da la prioridad a los nodos del mismo rack. Esto reduce el trfico de red en la
red principal backbone. Si un Task Tracker (rastreador de tareas) falla o no llega a tiempo,
la parte de trabajo se reprograma. El TaskTracker en cada nodo genera un proceso
separado JVM para evitar que el propio TaskTracker mismo falle si el trabajo en cuestin
tiene problemas. Se enva informacin desde el TaskTracker al JobTracker cada poco
minuto para comprobar su estado. El estado del Job Tracker y el TaskTracker y la
informacin obtenida se pueden ver desde un navegador web proporcionado por Jetty.
Si el Job Tracker fallaba en Hadoop 0.20 o anterior, todo el trabajo en curso se perda.
Hadoop versin 0.21 aadi algunos autoguardados al proceso; el rastreador de trabajo
graba lo que est en el sistema de archivos. Cuando un Job Tracker comienza, busca
datos para recomenzar el trabajo donde lo dej. En versiones anteriores, todo el trabajo
activo se perda cuando se reiniciaba el Job Tracker.
Programador justo
El fair scheduler (programador justo o limpio) fue desarrollado por Facebook. El objetivo
del programador es proporcionar rpida respuesta para trabajos pequeos y calidad de
servicio (QOS, en sus siglas en ingls) para trabajos de produccin. El fair scheduler se
basa en 3 conceptos bsicos:11