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.