GCP

GCP(Google Cloud Platform)のLinux仮想マシン上でJavaプログラムを動かしてみた

GCP(Google Cloud Platform)のLinux仮想マシン上で、GCS(Google Cloud Storage)とBigQueryで連動するJava 1.8のプログラムを動かせるようにしたので、その手順を共有する。

前提条件

GCP(Google Cloud Platform)のアカウントが有り、下記記事の手順に従って、GCP上でDebian GNU/Linux搭載済の仮想マシンを作成済であること。

GCP(Google Cloud Platform)でLinux搭載済の仮想マシンを作成してみたGCP(Google Cloud Platform)上でLinux搭載済の仮想マシンを作成し、GCS(Google Cloud Stor...

また、以下の記事での環境構築を実施済であること。

GCSとBigQueryで連動するプログラムを作成してみた(2)今回も引き続き、GCSとBigQueryで連動するプログラムについて述べる。ここでは、Windows 10が入っているローカル環境にて、...

やってみたこと

  1. JDK 1.8のインストール
  2. Mavenのインストール
  3. Mavenプロジェクトの作成
  4. pom.xmlとJavaプログラムの配置
  5. Mavenプロジェクトのコンパイル
  6. jarファイルの作成
  7. javaコマンドによるjarファイルの実行

 

JDK 1.8のインストール

GCP(Google Cloud Platform)上で仮想マシンを作成した段階では、Javaがインストールされていないため、Java 1.8のインストールを行う。

1) Debian GNU/Linux搭載済の仮想マシンにssh接続し、「apt list | grep jdk」により、インストール可能なJDKパッケージを探す
JDKインストール1

2) 「sudo apt-get install openjdk-8-jdk」により、JDK 1.8のインストールを行う
「sudo」をコマンドの先頭に付与することで、管理者権限でコマンド実行ができる。また、途中でインストールを継続して良いか聞かれるので「Y」を入力する。
JDKインストール2

3) インストールが完了すると、下記画面のようになる
JDKインストール3

4) 「java -version」と入力し、JDK 1.8がインストールされたことを確認する
JDKインストール4

Mavenのインストール

今回はMavenプロジェクトを作成したいため、Mavenのインストールを行う。

1) 「apt list | grep maven」により、インストール可能なMavenパッケージを探す
mavenインストール1

2) 「sudo apt-get install maven」により、Mavenのインストールを行う
mavenインストール2

3) インストールが完了すると、下記画面のようになる
mavenインストール3

4) 「mvn –version」と入力し、Mavenがインストールされたことを確認する
mavenインストール4

Mavenプロジェクトの作成

「maven-archetype-quickstart」というシンプルなJavaプロジェクトタイプのアーキタイプ(雛型)があるので、今回はそれを用いて作成する。

1) 「mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DgroupId=(グループID) -DartifactId=(アーティファクトID)」と入力し、Mavenプロジェクトを作成する
mavenプロジェクト作成1

2) 作成が完了すると、下記画面のようになる
mavenプロジェクト作成2

3) Mavenプロジェクトを作成すると、下記画面のようにフォルダ・ファイルが作成される
mavenプロジェクト作成3_1

なお、フォルダ構成をtree形式で表示できるように、下記画面のように「sudo apt-get install tree」コマンドにて、treeパッケージをインストールしている。
mavenプロジェクト作成3_2

pom.xmlとJavaプログラムの配置

pom.xmlとJavaプログラムを、Mavenプロジェクト上に配置する。なお、下記手順のプログラムの作成とgcloudコマンドによるコピーは、Windows10のローカルPC上で実施している。

1) pom.xmlを以下のように修正する

2) Javaプログラム(TestBigQuery.java、InsertIntoSales.java、SelectFromSales.java)は、SelectFromSales.javaのJSON出力先を「String jsonFilePath = “/home/ユーザーID/json/”;」と変更する以外は、下記記事と同じ内容とする。

GCSとBigQueryで連動するプログラムを作成してみた(4)今回も引き続き、GCSとBigQueryで連動するプログラムについて述べる。ここでは、GCS(Google Cloud Storage)...

また、実行時にJSONファイルが出力できるよう、Debian GNU/Linux搭載済の仮想マシンに、このjsonディレクトリをあらかじめ作成しておく。
プログラム作成2

3) コマンドプロンプト上で、「gcloud compute –project “プロジェクトID” scp –zone “ゾーン名” ./コピーファイル名 仮想VMインスタンス名:/home/ユーザー名 –recurse」を入力し、ローカルPCのファイルをDebian GNU/Linux搭載済の仮想マシンにコピーする
プログラム作成3_1

なお、「プロジェクトID」は、GCPの下記画面にて確認できる
プログラム作成3_2

4) 下図のように、Debian GNU/Linux搭載済の仮想マシン上のMavenプロジェクト内の所定の場所に、pom.xmlとJavaプログラムをコピーする
プログラム作成4

Mavenプロジェクトのコンパイル

「mvn compile」コマンドにより、Mavenプロジェクトのコンパイルを行う。

1) pom.xmlが置かれている場所に移動し、「mvn compile」を実行する
mvnコンパイル1

2) コンパイル後のフォルダ構成は下図の通り
mvnコンパイル2

jarファイルの作成

「mvn package」コマンドにより、jarファイルの作成を行う。

1) pom.xmlが置かれている場所に移動し、「mvn package」を実行する
jarファイル作成1

2) jarファイル作成後のフォルダ構成は以下の通りで、依存するライブラリを全て含んだ実行可能な「select-from-sales-0.0.1-SNAPSHOT-jar-with-dependencies.jar」というjarファイルも、targetフォルダ下に作成されている
jarファイル作成2

javaコマンドによるjarファイルの実行

javaコマンドにより、作成されたjarファイルの実行を行う。

1) jarファイルが生成されたtargetフォルダに移動し、「java -jar select-from-sales-0.0.1-SNAPSHOT-jar-with-dependencies.jar」を実行する
Java実行結果1

2) 実行後、出力されたjsonファイルを確認した結果は以下の通り
Java実行結果2