LoginSignup
4
0

More than 3 years have passed since last update.

Oracle PGXの環境をMac上で設定してみた(Docker使用)(2019年8月31日更新)

Last updated at Posted at 2019-06-09

Oracle PGXとは

Oracleが出しているインメモリのグラフ分析フレームワークです。ページランクや次数中心性等々のグラフを分析するアルゴリズムが多数組み込まれています。
動画のレコメンデーションや異常検出、タンパク質の相互作用の研究など、様々な分野への活用が期待されています。

こちらの記事でわかりやすくまとめられているので、是非参照してみてください。

より深く知りたい方は、OracleのHPへどうぞ。

Windows上での環境構築は、こちらの記事をご覧ください。

PCのスペック

・macOS Mojave
・2.3 GHz Intel Core i5
・メモリ 8 GB 2133 MHz LPDDR3

いざ環境構築!

今回もこちらの記事を参考にさせていただき、環境構築をしていきます。気合い入れていきましょう!

Dockerfileの作成

$ vi Dockerfile
Dockerfile
FROM openjdk:8-jdk
RUN apt-get update && apt-get install -y \
    unzip \
    vim

# PGX
WORKDIR /opt
ARG PGX_VERSION=19.2.1
ARG PGX_FILE=pgx-$PGX_VERSION-server.zip
COPY $PGX_FILE /opt
RUN unzip $PGX_FILE \
 && rm $PGX_FILE
ENV PATH=$PATH:/opt/pgx-$PGX_VERSION/bin

# Groovy
WORKDIR /opt
ARG GROOVY_VERSION=2.5.6
ARG GROOVY_FILE=apache-groovy-binary-$GROOVY_VERSION.zip
RUN wget https://bintray.com/artifact/download/groovy/maven/$GROOVY_FILE \
 && unzip $GROOVY_FILE \
 && rm $GROOVY_FILE
ENV GROOVY_HOME=/opt/groovy-$GROOVY_VERSION

# For avoiding worning
ENV HADOOP_HOME=/opt/haoop

WORKDIR /work

※注意すべきポイント:Dockerfileとpgx-server.zipファイルを同一ディレクトリに置く!

Dockerfileは必ずpgx-server.zipファイルと同一ディレクトリに置きましょう。Dockerfileとpgx-server.zipファイルを別のフォルダに入れていると、以下のように怒られてしまいます。
/var/lib/docker/tmp/docker-builderXXXXXXX/... no such file or directory

イメージをビルドする(2019年8月31日 バージョン更新)

$ docker build ./ -t pgx:19.2.1

-t オプションで名前を付けることができます(余談ですが、tはtty(端末デバイス)のことを指しているようです)。
成功していたら、以下のように表示されます。

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
pgx                 19.2.1              9e993a506a1c        About an hour ago   1.67GB
openjdk             8-jdk               3fb02922c98c        3 days ago          488MB

作成したPGXのイメージをコンテナとして実行する

以下ように表示されれば成功です!

$ docker run -it --rm pgx:19.2.1 pgx
tput: unknown terminfo capability 'setafsd'
[WARNING] PGX shell is using Groovy installed in /opt/groovy-2.5.6. It is the responsibility of the user to use the latest version of Groovy and to protect against known Groovy vulnerabilities.
Jun 09, 2019 11:54:26 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
11:54:30,380 INFO Ctrl$1 - >>> PGX engine 19.1.0/ API 3.3.0 running.

PGX Shell 19.2.1
PGX server version: 19.2.1 type: SM running in embedded mode.
PGX server API version: 3.3.0
PGQL version: 1.2
type :help for available commands
variables instance, session and analyst ready to use
pgx>

aliasを登録する

起動時にいちいちdocker run -it --rm pgx:19.2.1 pgxと打つのは面倒くさいので、aliasを登録します。

aliasとは

エイリアスとは、偽名、別名、通称などの意味を持つ英単語。ITの分野では、ファイルなどの実体を別の名前で参照するためのシンボルといった意味で使われることが多い。
(IT用語辞典より引用)

今回は、docker run -it --rm pgx:19.2.1 pgxpgxで済ますことができるように設定します。

1 .bashrcファイルを作成する

.bashrcは、シェル起動時に1回実行される隠しファイルです。.bashrcファイルにaliasを登録しておけば、次回起動時にもaliasがそのまま使えるようになります。

$ vi .bashrc
.bashrc
alias pgx='docker run -it --rm -v $PWD:/work pgx:19.2.1 pgx'
要注意!!

=の左右にはスペースを入れてはいけません!

2 .bash_profile.bashrcファイルを読み込む設定をする

作成した.bashrcファイルの設定を反映させるために、.bash_profile.bashrcファイルを読み込んでもらえるようにします。

.bash_profileの末尾にsource ~/.bashrcを書き加えます。

$ vi .bash_profile
.bash_profile
・・・(中略)・・・
source ~/.bashrc

3 ターミナルを再起動する

上記の変更を反映させるために、ターミナルを再起動します。
これで、aliasの設定は完了です。

実際に動くか試してみます。

$ pgx
tput: unknown terminfo capability 'setafsd'
[WARNING] PGX shell is using Groovy installed in /opt/groovy-2.5.6. It is the responsibility of the user to use the latest version of Groovy and to protect against known Groovy vulnerabilities.
Jun 09, 2019 12:19:30 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
12:19:34,535 INFO Ctrl$1 - >>> PGX engine 19.1.0/ API 3.3.0 running.

PGX Shell 19.2.1
PGX server version: 19.2.1 type: SM running in embedded mode.
PGX server API version: 3.3.0
PGQL version: 1.2
type :help for available commands
variables instance, session and analyst ready to use
pgx> 

動きました!お疲れ様でした!

4
0
0

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
4
0