Installation und Konfiguration des Java

Transcription

Installation und Konfiguration des Java
Installation und Konfiguration des Java-CogKit
Das Cogkit muss zunächst mit einem tar -xzf cogkit.tgz ausgepackt werden. Es wird
dann ein Verzeichnis namens cog-4_1_4 erzeugt, und in diesem Verzeichnis ist das
bin-Unterverzeichnis am interessantesten. Hier sind diverse Skripte und .batDateien enthalten, welche Grid-Funktionalitäten anbieten, u.a. ein grid-proxy-init
zur Generierung des Proxys für Grid-Operationen.
Nun geht es aber um die Konfiguration des CogKits. Dazu wird eine Java-GUI
angeboten, die man im bin-Unterverzeichnis über das Programm cog-setup
aufrufen kann. Man erhält nach cog-setup folgendes Bild:
Wenn man mit den Lizenzbedingungen einverstanden ist, kann man erst mit next
weitermachen. In dem dann folgenden Registration-Dialog bitte nur auf next
klicken, nichts ausfüllen. Man gelangt nun in ein Auswahlmenü wo man entscheiden
kann, ob man eine neue Konfiguration erstellen, oder eine schon vorhandene
bearbeiten soll. Hier bitte auf “start new configuration” gehen. Im nächsten Fenster
wir um die Angabe des GSI-Zertifikats gebeten. Das ist das Grid-Zertifikat, welches
beispielsweise vom FZK ausgegeben wird. Im nächsten Fenster wird man dann um
den private key gebeten.
Interessant wird es nun im folgendem Fenster:
Hier haben wir Condor ausgewählt, haben aber nichts anderes probiert, und mit der
Selektion “Condor” hat es dann auch geklappt.
Der Rest ist dann selbsterklärend, und zum Schluss wird die Konfiguration in einer
Datei abgelegt, welche per Default in $HOME/.globus/cog.properties heißt. Bei
mir sieht diese Datei wie folgt aus:
#Java CoG Kit Configuration File
#Tue Jul 04 07:05:01 EDT 2006
usercert=/home/ali/.globus/usercert.pem
userkey=/home/ali/.globus/userkey.pem
proxy=/tmp/x509up_u500
cacert=/home/ali/.globus/cog-certificates/
#ip=130.183.86.156
#ip=172.16.26.199
ip=dhcp-199.aei.mpg.de
tcp.port.range=20000,20100
Die tcp.port.range habe ich selber hinterher eingetragen. Diese wird für
Rüpckmeldungen externer Jobs durch gridftp benötigt, d.h. Sie schrenkt die gridftpPorts auf diesen Bereich ein.
Wenn all dies erledigt ist, kann man mit grid-proxy-init im bin-Unterverzeichnis sich
den Grid-Proxy generieren.
Installation von Java-GAT
Bitte eine neues Verzeichnis erzeugen, und gat.tgz dorthin kopieren. Die Datei
gat.tgz bitte mit tar -xzf gat.tgz auspacken. Vor dem bauen muss nun die
Environmentvariable GAT_LOCATION gesetzt werden, und zwar auf dem Pfad des
GAT-Verzeichnisses (das Verzeichnis, in welchen gat.tgz ausgepackt worden ist).
Wenn also GAT in $HOME/progs/GAT liegt, dann muss
echo $GAT_LOCATION
/home/user1/progs/GAT
ergeben, wenn $HOME dem Verzeichnis /home/user1 entspricht.
Das GAT kann nun einfach mit
ant
gebaut werden. Möchte man nur Adaptoren und Engine, aber keine Doku bauen,
dann muss man zuächst ins Unterverzeichnis engine wechseln und hier mit ant die
GAT Engine bauen, und danach ins adaptors-Unterzechnis gehen (parallel zu
engine) und hier mir ant die Adaptoren bauen.
Installation von GATJobRun
Zunächst muss GATJobRun.tgz ausgepackt werden. Hierbei wird ein Verzeichnis
GATJobRun erzeugt. In dieses Verzeichnis wechseln und
ant -f build-standalone.xml
aufrufen. Wichtig: GAT_LOCATION (s.o.) muss richtig gesetzt sein. Im scriptsUnterverzeichnis steht nun ein Programm namens gat-job-run. Die ist ein kleines
Shell-Skript, welches den Aufruf von GAT ansteuert. Ohne Optionen aufgerufen
meldet sich das Programm mit den verfügbaren Schaltern:
Misssing host and/or executable string
Usage: gat-job-run [OPTIONS] hostname executable [ARGUMENTS]
OPTIONS:
-username
-password
-stdin
-stdout
-stderr
-prestage
separated
-poststage
spearated
[STRING]
[STRING]
username for security context
password for security context
[FILE]
[FILE]
[FILE]
path to input file
path to output file
path to error output file
[FILE],... path to prestage file(s) - comma
[FILE],... path to poststage file(s) - comma
-RB.adaptor
[STRING]
force the use of a specific Resource
Broker adaptor
-RB.jobmanager [STRING] force the use of a specific Resource Broker jobmanager
Man kann nun also unter Verwendung eines GlobusResourceBrokerAdaptor
beispielsweise /bin/date auf einem externen Grid-Rechner ausführen lassen. Hierzu
muss man angeben:
gat-job-run -RB.adaptor GlobusResourceBrokerAdaptor cashmere.aip.de /bin/date
[main] INFO gssapi.GlobusGSSManagerImpl - Getting default credential
0 [main] INFO org.globus.gsi.gssapi.GlobusGSSManagerImpl - Getting default credential
job info: {resManError=0, resManName=Globus, state=INITIAL, resManState=Unknown,
id=https://cashmere.aip.de:20003/24423/1158659048/}
job info: {resManError=0, resManName=Globus, state=INITIAL, resManState=Unknown,
id=https://cashmere.aip.de:20003/24423/1158659048/}
job info: {resManError=0, resManName=Globus, state=INITIAL, resManState=Unknown,
id=https://cashmere.aip.de:20003/24423/1158659048/}
job info: {resManError=0, resManName=Globus, state=INITIAL, resManState=Unknown,
id=https://cashmere.aip.de:20003/24423/1158659048/}
job info: {resManError=79, resManName=Globus, state=POST_STAGING, resManState=Unknown,
id=https://cashmere.aip.de:20003/24423/1158659048/}
job info: {resManError=79, resManName=Globus, state=STOPPED, resManState=Unknown,
id=https://cashmere.aip.de:20003/24423/1158659048/}
JOB SUMMARY
================================================
Command:
/bin/date
Job ID:
null
Exit value: 0
================================================
STDOUT
================================================
Tue Sep 19 11:44:09 CEST 2006
================================================
So sollte es im Idealfall aussehen. Es kann auch wesentlich mehr Zeilen geben, die
mit “job info” beginnen, wenn alles langsam abläuft. Intern sieht es so aus, dass
alle 200 Millisekunden nach dem Status des jobs gepollt wird.
Normalerweise muss man keinen Adaptor auswählen, und Java-GAT sucht sich dann
den passenden Adaptor raus. Leider gibt es hier in der aktuellsten Java-GAT-Version
einen kleinen Bug, der hoffentlich bald gefixt sein wird.
Abschließenden noch zwei Tipps:
1) Wenn man im Skript gat-job-run beim Aufruf von gat (beginnt mit java) vor
-Dgat.adaptor.path=$GAT_LOCATION/adaptors/lib noch -Dgat.debug
hinzufügt, dann wird GAT viel gesprächiger, das hilft bei der Fehlersuche.
2) Die Namen der Adaptoren ergeben sich aus den Namen der jar-Files ohne die
Endung .jar. Um die Namen zu finden, muss man nach
$GAT_LOCATION/adaptors/lib gehen.