LoginSignup
1

More than 5 years have passed since last update.

RedHat(LinuxONE)のバックグラウンドでJavaのコードを実装する方法

Last updated at Posted at 2017-07-01

はじめに

大量の画像をアップロードするような処理ですと、コードの実行で何時間もかかり、他の作業に支障をきたすこともあるかと思います。
今回は、何時間かかる処理をRedHatのバックグラウンドでJavaのコードを実装し、Javaのコードを実行している間にローカルで別の作業ができる方法を記述しますので、参考にしてください。

サーバー構築

サーバー構築、サーバーにログインに関しては、下記URLから行ってください。
今回は、LinuxONEでRedHatのサーバーを構築し、TeraTermでRedHatにログインします。
http://qiita.com/takana-at/items/e51a2e5fa858fbdee19f

サーバー上にローカルファイルを移動できるようにする

RedHatのサーバー上にローカルファイルを移動、またローカルにサーバー上のファイルをWinSCPを使用しますので、WinSCPの環境を構築します。

鍵の変換

  1. PuttyGemをインストールします。
    登録方法は、下記URLを参考にしてください。
    https://webkaru.net/linux/putty-install/
      
  2. .ppkファイルを作成します。
    「Conversions」→「Import key」を選択します。 linuxone2.png
      
  3. サーバー構築時に作成した.pemファイルを指定します。 putty_re2.png
      
  4. .pemファイルのパスワードを入力します。
    putty_re3.png
      
  5. importできたら、任意の「key_passphrase」、「Confirm_passphrase」を入力し、「save private key」をクリックします。
    putty3.png
      
  6. ファイルの保存画面になりましたら、「ファイル名」に任意の名前を入力し、「ファイルの種類」に「.ppk」形式を指定し、「保存」ボタンをクリックします。
    putty4.png
      
  7. 「pem」形式のファイルから、「ppk」形式のファイルを作成することができました。
    putty5.png

winSCPをインストール

登録方法は、下記URLを参考にしてください。
http://www.media.hiroshima-u.ac.jp/services/web/winscp

winSCPでサーバーにログイン

  1. winSCPを起動します。
      
  2. 「転送プロトコル」にSFTPを指定し、「ホスト名」にLinuxONEで構築したRedHatのサーバーのIPアドレス、「ユーザー名」に、TeraTermで設定したユーザー名を入力します。 winscp1.png
      
  3. 「編集」をクリックし、秘密鍵を指定しますので、「設定」をクリックします。
    winscp2.png
      
  4. 「SSH」→「認証」をクリックし、「秘密鍵」にputtyGenでppk形式に変換したファイルを指定し、「OK」をクリックします。
    winscp3.png
      
  5. 「保存」→「ログイン」の順でクリックします。
    winscp4.png
      
  6. 秘密鍵のパスワードを入力し、「OK」ボタンをクリックします。
    winscp_ew1.png
      
  7. winSCPでRedHatのサーバーにアクセスしているときの画面です。
    rewinscp1.png
      
  8. サーバーにアクセスできると下記の画面が表示されます。
    左側がローカルのディレクトリ、右側がサーバー上のディレクトリになります。
    winscp5.png

実行するコードの準備

実行プロジェクトを圧縮

  1. eclipseを開きます。
      
  2. 「File」→「Export」を選択します。
    「General」→「Archive File」を選択し、「Next」をクリックします。
    archive1.png
      
  3. 圧縮するプロジェクトを選択し、「To archive file」にファイルを作成するディレクトリ、zipファイル名を指定し、「Finish」をクリックします。
    archive2.png
      
  4. zipファイルをサーバーにコピーします。 ドロップ&ドラッグで実行するzipファイルをコピーすることができます。
    winscp6.png

crawler.shを準備

  1. crawler.shファイルを作成します。
    実行するプロジェクトのどのコードを実行するかを指定し、「crawler.sh」ファイルを作成します。
    下記のコードは、crawler.shファイルの記入例で、「FILENAME」にどのファイルを実行するか、「\$1 \$2 \$3」に引数を示しています。
crawler.shの記入例
#!/bin/sh

cd demoApp/target/classes

java -classpath .:../../lib/commons-codec-1.4.jar:../../lib/commons-httpclient-3.1.jar:../../lib/commons-logging-1.1.1.jar:../../lib/mysql-connector-java-5.1.21-bin.jar:../../lib/httpclient-4.5.1.jar:../../lib/httpclient-cache-4.5.1.jar:../../lib/javase-3.3.0.jar:../../lib/httpcore-4.4.3.jar:../../lib/httpmime-4.5.1.jar:../../lib/json-simple-1.1.1.jar FILENAME $1 $2 $3

cd ../../..

  
2. 保存したら、crawler.shファイルをサーバー上にコピーしてください。
winscp7.png

これでサーバー上でコード実行する準備が整いました。

実行環境構築

RedHatにJavaをインストール

  1. TeraTermでRedHatにログインした状態で、圧縮したコードのJavaのバージョンと同じバージョンをインストールします。
    Javaのバージョンが異なると、「java.lang.UnsupportedClassVersionError」となりますので、注意してください。
 $sudo yum install java-1.8.0-ibm-devel

javav1.png

  
2. インストールの確認を求められたら、「y」をクリックします。

java4.png

インストールしたJavaのバージョンと「Completed!」という文字が表示されれば、Javaのインストール完了です。

RedHatにscreenをインストール

TeraTermでRedHatにログインした状態でscreenをインストールします。

 $sudo yum install screen

java9.png

RedHadのバックグラウンドでJavaのコードを実行する

screenを実行

RedHatでそのままコマンドを実行すると、バックグラウンドで実行した状態にできないので、screen内でコマンドを実行します。

  1. screenを実行しますので、下記をコマンドで実行します。
 $screen

screen1.png

  
2. scrennを実行すると、上部に「screen0」と表示されます。
screen2.png
これでscreenが実行できました。

圧縮ファイルの解凍

  1. screenを実行後、現在のディレクトリを「ls」で確認します。
    このとき、先ほどサーバーにコピーしたzipファイルがない場合は、サーバーにコピーしたzipファイルの1つ上のディレクトリに移動します。
    screen4_1.png
      
  2. zipファイルを展開しますので、下記コードを実行します。
    FILENAMEはご自身のzipファイル名に変更してください。
 $unzip FILENAME

screen5_1.png

crawler.shファイルの実行

  1. crawler.shファイルを実行する権限を追加しますので、下記コードを実行してください。
 $chmod +x crawler.sh

  
2. crawler.shファイルを実行します。
crawler.shを実行することで、crawler.shファイル内で指定したファイルをRedHatで実行することができます。

 $./crawler.sh

screen6.png

  
3. デタッチ、アタッチする場合は下記のURLを参照してください。
3-1. デタッチの方法
http://qiita.com/takana-at/items/77120a75e155e180a5d4#%E3%83%87%E3%82%BF%E3%83%83%E3%83%81

3-2. アタッチの方法
http://qiita.com/takana-at/items/77120a75e155e180a5d4#%E3%82%A2%E3%82%BF%E3%83%83%E3%83%81

  

  

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1