User Tools

Site Tools


cluster:universo_java

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cluster:universo_java [2010/07/24 01:23]
Jorge Iván Meza Martínez
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 =====
Line 26: 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 34: 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 40: 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 46: 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 58: 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 =====
Line 64: Line 70:
 Ejecute desde el ''c-head'' el siguiente comando para verificar cuales nodos del cluster cuentan con soporte para Java. Ejecute desde el ''c-head'' el siguiente comando para verificar cuales nodos del cluster cuentan con soporte para Java.
  
-<file bash>+<code bash>
 # condor_status -java # condor_status -java
  
Line 76: Line 82:
  
                    Total                                      0        0                    Total                                      0        0
-</file>+</code>
  
-===== Solucionar problemas ===== 
  
-==== Los nodos cuentan con soporte para Java pero aparentemente no soportan este universo ==== 
- 
-Los nodos cuentan con la instalación de Java (ver paso anterior) pero cuando desde el nodo principal se pude el reporte de los nodos del cluster que pueden ejecutar trabajos en el universo Java, este aparece vacío. 
- 
-Este problema aparece en algunas ocasiones cuando se utiliza la máquina virtual de SUN Microsystems y se debe a un problema en el manejo de la configuración de Condor, según se menciona en el manual de Condor. 
- 
-//One identified difficulty occurs when the machine has a large quantity of physical RAM, and this quantity exceeds the Java limitations. This is a known problem for the Sun JVM. Condor appends the maximum amount of system RAM to the Java Maxheap Argument, and sometimes this value is larger than the JVM allows. The end result is that Condor believes that the JVM on the machine is faulty, resulting in nothing showing up as a result of executing the command condor_status -java.// 
- 
-=== Diagnosticar el problema === 
- 
-Verificar el valor máximo de tamaño para la memoria del //heap// según la configuración de Condor. 
- 
-<file bash> 
-# condor_config_val JAVA_MAXHEAP_ARGUMENT 
- 
-    -Xmx1024m 
-</file> 
- 
-Verificar este mismo valor según la información que recibió efectivamente el cluster. 
- 
-<file bash> 
-# condor_starter -classad 
- 
-    CondorVersion = "$CondorVersion: 7.4.2 Mar 29 2010 BuildID: 227044 $" 
-    IsDaemonCore = True 
-    HasFileTransfer = True 
-    HasPerFileEncryption = True 
-    HasReconnect = True 
-    HasMPI = True 
-    HasTDP = True 
-    HasJobDeferral = True 
-    HasJICLocalConfig = True 
-    HasJICLocalStdin = True 
-    Invalid maximum heap size: -Xmx1024m249m 
-    Could not create the Java virtual machine. 
-    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
-    HasVM = True 
-</file> 
- 
-=== Implementar la solución === 
- 
-Editar el archivo de configuración general del cluster y reemplazar la definión existente de la variable ''JAVA_MAXHEAP_ARGUMENT'' con las siguientes variables. 
- 
-<file bash> 
-# vi /opt/condor/condor/etc/condor_config.local 
- 
-  # First set JAVA_MAXHEAP_ARGUMENT to null, to disable the default of max RAM 
-  JAVA_MAXHEAP_ARGUMENT = 
-  # Now set the argument with the Sun-specific maximum allowable value 
-  JAVA_EXTRA_ARGUMENTS = -Xmx1024m 
-</file> 
- 
-  Ajuste según sus requerimientos, el valor de memoria (MB) a asignársele al heap en el parámetro JAVA_EXTRA_ARGUMENTS. 
-   
-Solicitar la reconfiguración de los nodos para que estos tomen el nuevo valor recién configurado. 
- 
-<file bash> 
-# condor_reconfig c-head c-wn1 c-wn2 
- 
-    Sent "Reconfig" command to master c-head.micluster.com 
-    Sent "Reconfig" command to master c-wn1.micluster.com 
-    Sent "Reconfig" command to master c-wn2.micluster.com 
-</file> 
- 
-=== Verificar la eficacia de la solución === 
- 
-Solicitar nuevamente el estado de las variables relacionadas con la plataforma Java. 
- 
-<file bash> 
-# condor_starter -classad 
- 
-    CondorVersion = "$CondorVersion: 7.4.2 Mar 29 2010 BuildID: 227044 $" 
-    IsDaemonCore = True 
-    HasFileTransfer = True 
-    HasPerFileEncryption = True 
-    HasReconnect = True 
-    HasMPI = True 
-    HasTDP = True 
-    HasJobDeferral = True 
-    HasJICLocalConfig = True 
-    HasJICLocalStdin = True 
-    JavaVendor = "Sun Microsystems Inc." 
-    JavaVersion = "1.6.0_20" 
-    JavaSpecificationVersion = "1.6" 
-    JavaMFlops = 1416.831909 
-    HasJava = True 
-    HasVM = True 
-</file> 
  
 ===== El universo Java ===== ===== El universo Java =====
Line 177: Line 94:
 El código fuente del trabajo a enviarse al cluster. El código fuente del trabajo a enviarse al cluster.
  
-<file bash>+<code bash>
 $ vi HelloClusterJava.java $ vi HelloClusterJava.java
-</file>+</code>
  
 <file java HelloClusterJava.java> <file java HelloClusterJava.java>
Line 205: Line 122:
 La compilación del trabajo en Java. La compilación del trabajo en Java.
  
-<file bash>+<code bash>
 $ javac HelloClusterJava.java $ javac HelloClusterJava.java
-</file>+</code>
  
 El archivo de envío del trabajo al cluster. El archivo de envío del trabajo al cluster.
  
-<file bash>+<code bash>
 $ vi HelloClusterJava.submit $ vi HelloClusterJava.submit
-</file>+</code>
  
 <file bash HelloClusterJava.submit> <file bash HelloClusterJava.submit>
Line 229: Line 146:
 Enviar el trabajo al cluster. Enviar el trabajo al cluster.
  
-<file bash>+<code bash>
 $ condor_submit HelloClusterJava.submit $ condor_submit HelloClusterJava.submit
-</file>+</code>
  
 La obtención de los resultados. La obtención de los resultados.
  
-<file>+<code bash>
 $ cat _HelloClusterJava.log $ cat _HelloClusterJava.log
  
Line 253: Line 170:
     0  -  Total Bytes Received By Job     0  -  Total Bytes Received By Job
     ...     ...
 +</code>
  
 +<code bash>
 $ cat _HelloClusterJava.err $ cat _HelloClusterJava.err
  
     (vacío)     (vacío)
 +</code>
  
 +<code bash>
 $ cat _HelloClusterJava.out $ cat _HelloClusterJava.out
  
     Hello cluster, my name is: c-wn1.micluster.com.     Hello cluster, my name is: c-wn1.micluster.com.
-</file>+</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.1279934585.txt.gz · Last modified: 2012/02/26 22:35 (external edit)