User Tools

Site Tools


cluster:universo_java

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
cluster:universo_java [2010/07/23 21:06]
Jorge Iván Meza Martínez created
cluster:universo_java [2012/02/26 22:35] (current)
Line 1: Line 1:
 ====== Enviar trabajos al universo Java ====== ====== Enviar trabajos al universo Java ======
 +
 +===== Control de versiones =====
 +
 +^  Fecha  ^  Actividad          Autor  ^
 +|24/07/2010 |Publicación inicial |[[http://jorgeivanmeza.com/ | Jorge Iván Meza Martínez]].|
 +|03/03/2011 |Se extrajo la solución del problema de configuración de Java a la sección de //solución a problemas//  |[[http://jorgeivanmeza.com/ | Jorge Iván Meza Martínez]].|
  
 ===== Introducción ===== ===== Introducción =====
  
-xxx En este capítulo se analiza la funcionalidad del universo ''Vanilla'' y se envía al cluster un trabajo simple a través de él.+En este capítulo se analiza la funcionalidad del universo ''Java'' y se envía al cluster un trabajo simple a través de él.  También se explica como identificar y solucionar un problema de configuración muy común que aparece entre la versión actual de Condor y la máquina virtual de SUN Microsystems.
  
 ===== Tiempo estimado ===== ===== Tiempo estimado =====
  
-xxxx 30 minutos.+40 minutos.
  
 ===== Precondición ===== ===== Precondición =====
  
   * El cluster se encuentra completo y en operación.   * El cluster se encuentra completo y en operación.
 +  * Para la instalación automática de Java (ver mas adelante) se requiere de acceso a Internet.
  
 ===== Supuestos ===== ===== Supuestos =====
Line 25: Line 32:
 En los nodos trabajadores ejecute como usuario ''root'' el siguiente comando. En los nodos trabajadores ejecute como usuario ''root'' el siguiente comando.
  
-<file bash>+<code bash>
 # yum install java-1.6.0-sun-compat.i586 # yum install java-1.6.0-sun-compat.i586
-</file>+</code>
  
 ==== Instalación manual ==== ==== Instalación manual ====
Line 33: Line 40:
 Descargar los siguientes paquetes manualmente. Descargar los siguientes paquetes manualmente.
  
-<file bash>+<code bash>
 # wget http://ftp.scientificlinux.org/linux/scientific/55/i386/SL/jpackage-utils-1.7.3-1jpp.2.el5.noarch.rpm # wget http://ftp.scientificlinux.org/linux/scientific/55/i386/SL/jpackage-utils-1.7.3-1jpp.2.el5.noarch.rpm
  
Line 39: Line 46:
  
 # wget http://ftp.scientificlinux.org/linux/scientific/55/i386/SL/jdk-1.6.0_20-fcs.i586.rpm # wget http://ftp.scientificlinux.org/linux/scientific/55/i386/SL/jdk-1.6.0_20-fcs.i586.rpm
-</file>+</code>
  
 Es posible que existan nuevas versiones a las mencionadas así que puede ser conveniente que [[http://ftp.scientificlinux.org/linux/scientific/55/i386/SL/ | verifique el repositorio]] y descargue las últimas versiones disponibles de los paquetes listados anteriormente. Es posible que existan nuevas versiones a las mencionadas así que puede ser conveniente que [[http://ftp.scientificlinux.org/linux/scientific/55/i386/SL/ | verifique el repositorio]] y descargue las últimas versiones disponibles de los paquetes listados anteriormente.
Line 45: Line 52:
 Instalar localmente los paquetes descargados. Instalar localmente los paquetes descargados.
  
-<file bash>+<code bash>
 # yum localinstall java-1.6.0-sun-compat-1.6.0.20-1.sl5.jpp.i586.rpm  jdk-1.6.0_20-fcs.i586.rpm  jpackage-utils-1.7.3-1jpp.2.el5.noarch.rpm # yum localinstall java-1.6.0-sun-compat-1.6.0.20-1.sl5.jpp.i586.rpm  jdk-1.6.0_20-fcs.i586.rpm  jpackage-utils-1.7.3-1jpp.2.el5.noarch.rpm
-</file>+</code>
  
 ==== Verificar la instalación de Java ==== ==== Verificar la instalación de Java ====
  
-<file bash>+<code bash>
 # java -version # java -version
  
Line 57: Line 64:
     Java(TM) SE Runtime Environment (build 1.6.0_20-b02)     Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
     Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)     Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
-</file>+</code>
  
 ===== Verificar el soporte para Java en los nodos ===== ===== Verificar el soporte para Java en los nodos =====
  
-asdf+Ejecute desde el ''c-head'' el siguiente comando para verificar cuales nodos del cluster cuentan con soporte para Java. 
 + 
 +<code bash> 
 +# condor_status -java 
 + 
 +    Name               JavaVendor Ver    State     Activity LoadAv Mem   ActvtyTime 
 + 
 +    c-wn1.micluster.co Sun Micros 1.6.0_ Unclaimed Idle     0.510   249  0+01:08:03 
 +    c-wn2.micluster.co Sun Micros 1.6.0_ Unclaimed Idle     0.910   249  0+00:31:58 
 +                         Total Owner Claimed Unclaimed Matched Preempting Backfill 
 + 
 +             INTEL/LINUX                                      0        0 
 + 
 +                   Total                                      0        0 
 +</code> 
 + 
 + 
 + 
 +===== El universo Java ===== 
 + 
 +Este universo permite el acceso uniforme a las máquinas virtuales de los nodos que dispongan de este servicio de manera independiente a la arquitectura de la máquina física o de su sistema operativo formando un ambiente de cómputo distribuido y homogéneo basado en la plataforma Java. 
 + 
 +===== Ejemplo ===== 
 + 
 +El código fuente del trabajo a enviarse al cluster. 
 + 
 +<code bash> 
 +$ vi HelloClusterJava.java 
 +</code> 
 + 
 +<file java HelloClusterJava.java> 
 +public class HelloClusterJava 
 +
 + public static void main(String args[]) 
 + { 
 +   String hostname = "*** desconocido *** "; 
 + 
 +   try 
 +   { 
 +     java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost(); 
 +     hostname = localMachine.getHostName(); 
 +   } 
 +   catch (java.net.UnknownHostException e) 
 +   { 
 +     hostname = e.getMessage(); 
 +   } 
 + 
 +   System.out.println("Hello cluster, my name is: " + hostname + ".\n\n"); 
 + } 
 +
 +</file> 
 + 
 +La compilación del trabajo en Java. 
 + 
 +<code bash> 
 +$ javac HelloClusterJava.java 
 +</code> 
 + 
 +El archivo de envío del trabajo al cluster. 
 + 
 +<code bash> 
 +$ vi HelloClusterJava.submit 
 +</code> 
 + 
 +<file bash HelloClusterJava.submit> 
 +executable = HelloClusterJava.class 
 +arguments  = HelloClusterJava 
 +universe   = java 
 +log        = _HelloClusterJava.log 
 +output     = _HelloClusterJava.out 
 +error      = _HelloClusterJava.err 
 +queue 
 +</file> 
 + 
 +Nótese como el nombre del archivo de la clase principal se referencia en la variable ''executable'' mientras que en la variable ''arguments'' se referencia el nombre de la clase principal. 
 + 
 +Enviar el trabajo al cluster. 
 + 
 +<code bash> 
 +$ condor_submit HelloClusterJava.submit 
 +</code> 
 + 
 +La obtención de los resultados. 
 + 
 +<code bash> 
 +$ cat _HelloClusterJava.log 
 + 
 +    000 (028.000.000) 07/12 18:16:47 Job submitted from host: <192.168.1.220:9362> 
 +    ... 
 +    001 (028.000.000) 07/12 18:16:50 Job executing on host: <192.168.1.221:9335> 
 +    ... 
 +    005 (028.000.000) 07/12 18:16:51 Job terminated. 
 +    (1) Normal termination (return value 0) 
 +    Usr 0 00:00:00, Sys 0 00:00:00  -  Run Remote Usage 
 +    Usr 0 00:00:00, Sys 0 00:00:00  -  Run Local Usage 
 +    Usr 0 00:00:00, Sys 0 00:00:00  -  Total Remote Usage 
 +    Usr 0 00:00:00, Sys 0 00:00:00  -  Total Local Usage 
 +    0  -  Run Bytes Sent By Job 
 +    0  -  Run Bytes Received By Job 
 +    0  -  Total Bytes Sent By Job 
 +    0  -  Total Bytes Received By Job 
 +    ... 
 +</code> 
 + 
 +<code bash> 
 +$ cat _HelloClusterJava.err 
 + 
 +    (vacío) 
 +</code>
  
 +<code bash>
 +$ cat _HelloClusterJava.out
  
-xxx ===== El universo Vanilla =====+    Hello cluster, my name is: c-wn1.micluster.com. 
 +</code>
  
 +====== Enlaces ======
  
 +  * [[http://griduam.labs.net.co/blog/archives/40 | Enviando trabajos al universo Java del cluster.]]
 +  * [[http://www.cs.wisc.edu/condor/manual/v7.4/2_8Java_Applications.html | Java Applications, Condor Manual.]]
cluster/universo_java.1279919173.txt.gz · Last modified: 2012/02/26 22:35 (external edit)