Professional Documents
Culture Documents
1, ABRIL 2017 1
N Clster se describe a un conjunto de 2 o mas equipos Disear estrategia de construccin de cluster de Alto
U de computo que se comportan como uno solo, compar-
tiendo recursos de hardware y software a travez de una red de
Rendimiento.
Implementar un prototipo de un Clster de Alta
alta velocidad, de una manera transparente sin que el usuario Rendimiento sobre la plataforma Linux Ubuntu.
note que esta utilizando varios computadores. Simular y Validar el Clster de alto rendimiento en el
Aunque en el mercado tecnolgico actual los computadores escenario establecido.
personales presentan mayores prestaciones, estas no cuentan Realizar pruebas del cluster de Alto Rendimiento uti-
con las caractersticas suficientes para ser utilizadas en el lizando mysql.
mbito investigativo o de desarrollo dentro de instituciones
educativas u organizaciones. III. M ARCO T EORICO
Cada da, los cibernautas utilizan ms los servicios como son En esta seccin introducirn los conceptos bsicos necesar-
web, streaming, conferencias en vivo, entre otros y exigen que ios para comprender el contexto en el que se sita el trabajo.
estos sean rpidos, ntegros e ininterrumpidos. Pero muchos de
estos factores requieren una gran inversin que, en diversos
A. Cluster
casos, no es factible realizarla, por tanto tienen que continuar
con los mtodos de transmisin tradicionales. Se plantean a continuacin algunas definiciones sobre este
Es por eso que un Clster ofrece una alternativa viable, porque concepto:
puede ser implementado utilizando computadores personales Segun Buyya: [1] Es un conjunto de computadoras construidas
de bajos recursos y herramientas de software libre. mediante la utilizacin de componentes de hardware que se
Hoy en da hay varios trabajos con respecto a los clsteres comportan como si fuesen una nica computadora.
de computadoras con alto grado de similitud, el mbito de
computacin paralela el clster es la nueva modalidad de Para Tenebaum [2] Un servidor de cluster es una coleccin
construccin de supercomputadoras por su bajo costo y acce- de mquinas conectadas a travs de una red, donde cada
sibilidad. Que remplace a cabalidad las necesidades requeridas mquina ejecuta uno o ms servidores, teniendo la capacidad
por los usuarios. de ofrecer mltiples servicios que usan hardware de alto
mds rendimiento.
Abril 18, 2017
1) Elementos que forman parte de un clster: Los
1 X. Llauca estudiante de octavo ciclo de la Carrera de Ingeniera de elementos con los que cuenta un clster son (Figura 1) [3]
Sistemas ,Universidad Politcnica Salsiana, Cuenca, Ecuador e-mail: (xl-
lauca@est.ups.edu.ec).
2 M. Mocha estudiante de octavo ciclo de la Carrera de Ingeniera Un nodo activo, donde corren los servicios.
de Sistemas ,Universidad Politcnica Salsiana, Cuenca, Ecuador e-mail: Un nodo pasivo que funciona como respaldo(Backup).
(mmocha@est.ups.edu.ec). Servidores reales.
3 F. Otavalo estudiante de octavo ciclo de la Carrera de Ingeniera de
Software de administracin.
Sistemas ,Universidad Politcnica Salsiana, Cuenca, Ecuador e-mail: (fo-
tavaloa@est.ups.edu.ec). Protocolos de comunicacin y servicios.
Documento entregado Abril 18, 2017; revisado Abril 18, 2017. Conexiones de red.
IMPLEMENTACIN DE UN CLSTER DE ALTO RENDIMIENTO, VOL. 1, NO. 1, ABRIL 2017 2
Nodos
Un nodo no es mas que un computador dentro del Clster.
Un nodo puede ser un computador convencional, un
servidor o un sper computador. Aunque no es estrctamente
obligatorio que todos los nodos del Clster sean exactamente
iguales es recomendable que estos compartan caractersticas
simlares del procesamiento y almacenamiento para evitar un
comportamiento ineficiente del cluster. [5]
Sistema Operativo.
El sistema operativo es el software (programa o conjunto
de programas) que en un sistema informtico gestiona los
recursos de la mquina y provee servicios bsicos a los
programas de aplicacin. El sistema operativo siempre se
ejecuta en modo privilegiado. Es el software es el que se Fig. 2: Cluster de Alto Rendimiento. [10]
sita entre la mquina y los programas. [6]
Cluster de Alta Disponibilidad:
Conexiones de RED Son clsteres cuyo objetivo es proveer disponibilidad y
Una conexin de red es el medio por el cual, al menos dos confiabilidad. Estos clsteres tratan de brindar la mxima
computadores, envan y reciben informacin. Un requisito disponibilidad de los servicios que ofrecen. La confiabilidad
indispensable para la implementacin de un cluster es que se provee mediante un software que detecta fallos y permite
todos los nodos sean capaces de comunicarse entre s a recuperarse frente a ellos, mientras que en hardware se evita
travz de una conexin de red. Independiente de la tecnologa tener un nico punto de fallos. [9]
seleccionada se recomienda que la velocidad de comunicacin
entre dos nodos sea lo mas homognea posible y mientras
ms rpida, mejor. [5]
MiddleWare
De acuerdo con el profesor (Sacha Krakowiak) de la
Universidad Joseph Fourier de Francia, un milddeware es :
"la capa de un software que se encuentra entre el sistema
operativo y las aplicaciones en cada sitio del sistemas."
[7]
En otras palabras, es un programa intermediario entre
dos programas independientes. El middleware es el
encargado de monitorear, administrar, distribuir y controlar el
comportamiento general de un clster.
Algunos de los middleware de alto nivel mas populares para
clsters son:
IMPLEMENTACIN DE UN CLSTER DE ALTO RENDIMIENTO, VOL. 1, NO. 1, ABRIL 2017 3
Fig. 3: Cluster de Alta Disponibilidad. [10] de paquetes, Synpatic que lo hacen muy fcil de actualizar
y muy sencillo de instalar cualquier software, tambin las
Cluster de Almacenamiento:
ltimas versiones traen mejoras en cuanto a controladores de
Un cluster de almacenamiento proporciona una imagen de
hardware y rapidez de arranque con respecto a cliente - servi-
sistema de archivos consistente a lo largo de los servidores
dor. Tambin consta de algunas distribuciones pueden cobrar
en el cluster, permitiendo que los servidores lean y escriban
el soporte oficial, soporte software, documentacin y otros
de forma simultnea a un sistema de archivos compartido. [9].
servicios, nunca el ncleo porque es libre, pero s por algunas
utilidades y aplicaciones, la mayora de las distribuciones estn
basadas en Ubuntu
C. Apache Spark
Apache Spark combina un sistema de computacin
distribuida a travz de clusters de ordenadores con una
manera sencilla y elegante de escribir programas. Fue creado
en la universidad de Berkeley en California y es considerado
el primer software de cdigo abierto que hace la programacin
distribuida realmente a los cientficos de datos.
D. Java
El lenguaje JAVA es un lenguaje de programacin multi-
plataforma que permite crear aplicaciones interactivas repar-
tidas por la red a travs de la Web. Estos programas JAVA
que se ejecutan a travs de la Web es lo que se conoce como
Applets JAVA. [12]
E. Scala
Un lenguaje de programacin multiparadigma es aquel que
permite al programador elegir diferentes "estilos" de desar-
rollo dependiendo del tipo de problema: programacin lgica,
Fig. 5: Cluster de Balanceo de Carga. [10] funcional, orientada a objetos
[13]
B. Ubuntu Integracin con Java
Es uno de los sistemas ms estables, fcil de usar, de Scala se ejecuta sobre una mquina virtual Java, lo cual
instalar y rpido. Utiliza paquetes de tipo deb y con un gestor permite la integracin de caractersticas o libreras entre ambos
IMPLEMENTACIN DE UN CLSTER DE ALTO RENDIMIENTO, VOL. 1, NO. 1, ABRIL 2017 4
lenguajes. Es posible, entre otras cosas, llamar a mtodos de Fig. 8: Caracteristicas internas de los Nodos
Java, heredar clases o implementar interfaces. Esta integracin
Herramienta de virtualizacin: VMware o VirtualBox.
es recproca, es decir, podemos utilizar Java en Scala y Scala
Sistema operativo: Ubuntu 14.04.
en Java.
Tras el paso anterior, se procede a instalar Java: sudo apt-get install openssh-server
sudo apt-add-repository ppa:webupd8team/java En la mquina spark-master generamos una clave RSA para
sudo apt-get update el acceso remoto a los workers:
sudo apt-get install oracle-java8-installer
ssh-keygen
Paso 3
Este tercer paso va a consistir en instalar Scala Para tener acceso a los workers sin contrasea, la clave
RSA generada en el master debe ser copiada en cada uno de
Paso 4 los workers. Por lo tanto, en la mquina spark-master se
Para comenzar con el cuarto paso hay que apagar la mquina ejecuta el siguiente comando:
virtual, ya que no se pueden clonar mquinas si la de origen
est encendida. Una vez est apagada, click con el botn ssh -copy -id -i /.ssh/id_rsa.pub user_worker@ip_worker
derecho en el nombre de la mquina y dentro de "Manage",
seleccionar "clonar". El tipo de clonacin va a ser "linked" Teniendo en cuenta lo anterior y sabiendo que hay 4
o "enlazada" y el nombre de la nueva mquina virtual: workers cada uno con su respectiva direccin y nombre de
spark-worker-node. usuario, en spark-master se introduce el siguiente comando:
ssh -copy -id -i /.ssh/id_rsa.pub master@192.168.1.10
IMPLEMENTACIN DE UN CLSTER DE ALTO RENDIMIENTO, VOL. 1, NO. 1, ABRIL 2017 6
# localhost
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
A continuacin, se copia este archivo en la misma ruta del Fig. 12: Panel web del cluster de Apache Spark.
spark-node-worker.
Como resultado, es posible observar en el panel web que se
Configuracin del entorno Apache Spark est ejecutando una aplicacin en el cluster:
Se abre la carpeta de Spark en spark-master. Dentro de la
carpeta conf hay un archivo llamado spark-env.sh.template,
el cual se va a renombrar a spark-env.sh. Hay que aadir
las siguientes lneas de configuracin:
V. R ESULTADOS
Fig. 14: Administracion web del Cluster. Fig. 18: Tabla prueba de rendimiento.
Rendimiento del CPU del cluster sin implementar ninguna Rendimiento del CPU del cluster con pruebas de rendimiento
aplacacon.
VI. C ONCLUSINES
Se estudiaron los componentes de Software necesarios para
realizar la implementacin de un Cluster de alto rendimiento,
tomando en cuenta que se utilizo solamente herramientas de
Fig. 16: Rendimiento de la Memoria.
Software Libre.
Rendimiento del cluster haciendo la primera prueba.
NOTA: EN ESTA PARTE SE REALIZO UNA PRUEBA Como escenario de pruebas se realizo la simulacin del
DONDE EL MENOR RENDIMIENTO FUE DE 38S Clster de Alto Rendimiento utilizando el sistema operativo
ubuntu 14.04, y se realiz la instalacin del Cluster en los
master.jpg equipos posteriormente se realizo las pruebas necesarias
IMPLEMENTACIN DE UN CLSTER DE ALTO RENDIMIENTO, VOL. 1, NO. 1, ABRIL 2017 8
validando el correcto funcionamiento del Cluster y sus los datos repetitivamente en disco, todo ello nos favorece
componentes. en velocidad , teniendo como resultado un aumentoaverdico
Con la implementacin de Cluster lo que se logr, es poder aaadiferencia de procesar los datos en disco.
tener un escenario donde se encuentra una conexin de
varias computadoras trabajando de manera conjunta lo que ha Se recomienda a los usuarios que al momento de laainstalacin
solucionado problemas de tiempo, ya que se puede demostrar y su previaaconfiguracinasiempre deben tener presente sus
la diferencia de tener una computadora trabajando por si sola respectivos puertos, ya que con laaimplementacin de apache
y el tener implementado un Cluster. spark y graphite estos dos servicios usan el mismo puerto, y
a la hora de realizar pruebas de funcionamiento se da el caso
En la parte tcnica se defini que tipo de distribucin de que no se puedaaabrir ya sea apache spark o graphite, por
se va a usar, las diferentes caractersticas se que formaran ello seadeberaacambiar los puerto para evitaraconfusiones
parte de cada sistema operativo, de esa forma se tendr entre los puertos.
control de cada sistema operativo virtualizado y se podr
realizar un anlisis del tipo de ventajas que se logro obtener. D OCUMENTACIN W EB
Es muy importante considerar que se encontraron varios [A] http://www.ajaxman.net/1541/tutorial-creando-virtual-host-de-
problemas en la implementacin de Clsterr, tanto de apache-usando-linux/.
compatibilidad como de configuracin, para lo cual el grupo [B] http://www.iimas.unam.mx/iimas/pagina/es/180/reglamento-uso-
debi realizar investigaciones de manera muy minuciosa con del-cluster-de-alto-rendimiento
[C]http://dspace.uazuay.edu.ec/bitstream/datos/2148/1/04560.pdf
el fin de poder solucionarlos.
R EFERENCES
Con el uso de software libre y la implementacin de
Clster sobre ello, se pudo demostrar que el software libre es [1] R. Buyya, High performance cluster computing: programming and
applications, vol. 2, Pre ticeHallPTR, NJ, vol. 29, 1999.
muy importante ya que se puedo implementar sin encontrar [2] M. V. S. Andrew S. Tanenbaum, Sistemas distribuidos principios y
problemas de licencias o de alguna otro tipo, ya que el uso paradigmas, p. 706, 2008.
de un software pagado limita las capacidades de lo que se [3] F. Gallardo, Diseo de una solucion para servidores delta disponivilidad
y balanceo de carga con open source, Universidad Alfredo Perez
quiere lograr. Guerrero, UNAP, 2011.
[4] E. G. R. L. Mara Mercedes Sinisterra, Tania Marcela Daz Henao,
El escenario que se creo tiene mucha importancia ya Clster de balanceo de carga y alta disponibilidad para servicios web
y mail, vol. 76, p. 10, 2012.
que se puedo realizar pruebas que nos demuestran datos [5] M. A. Angeles
Jimlnez, Cluster alta disponibilidad, p. 42, 2013.
reales, y con esto tener una base firme en el caso de querer [6] U. de Alicate, Sistemas operativos, p. 26.
implementarlo ya que un Clsterr ayuda de mucho si es una [7] S. Krakowiak, Middleware architecture with patterns and frameworks,
Computer Science at Universitl, Francia, p. 437, 2009.
empresa encargada de procesar informacin. [8] R. Buyya, High performance cluster computing: Architecture and
systems, volume i, Prentice Hall, Upper SaddleRiver, NJ, USA, vol. 1,
p. 999, 1999.
[9] P. G. Poncce, Cluster, informatico y organizacional, Universidad
VII. R ECOMENDACIONES Central, Facultad de Ciencias Economicas y Administrativas, p. 23,
2009.
Se debe tener en cuenta que al momento de instalar [10] D. Jimnez and A. Medina, Cluster de alto rendimiento, Journal
Innovacin y Tecnologa, p. 16, 2014.
los paquetes de software necesarios para el correcto [11] M. P. ESTESO, CSmo crear un clster de servidores con apache
funcionamiento del cluster HPC, se debe verificar la versin spark.
del sistema operativo base para evitar inconvenientes de [12] P. Snchez, L. Martnez, and M. D. Muoz, Un sistema de generacin
y evaluacin de exmenes basado en java, Actas del CONIED, vol. 99,
compatibilidad. 1999.
[13] M. P. Esteso, Curso scala [parte 1]: quL es scala?
Se determino que al usar las maquinas de diferentes urlhttps://geekytheory.com/curso-scala-parte-1-que-es-scala, 2015.
arquitectura, memoria RAM, y Disco Duro. para realizacin
de una misma tarea, afecta el tiempo de respuesta, debido
a que el procesador con caractersticas inferiores tarda mas
tiempo en resolver su porcin de trabajo. Xavier Llauca Biography text here.