Oracle PGXとは
Oracleが出しているインメモリのグラフ分析フレームワークです。ページランクや次数中心性等々のグラフを分析するアルゴリズムが多数組み込まれています。
動画のレコメンデーションや異常検出、タンパク質の相互作用の研究など、様々な分野への活用が期待されています。
こちらの記事でわかりやすくまとめられているので、是非参照してみてください。
より深く知りたい方は、OracleのHPへどうぞ。
Windows上での環境構築は、こちらの記事をご覧ください。
PCのスペック
・macOS Mojave
・2.3 GHz Intel Core i5
・メモリ 8 GB 2133 MHz LPDDR3
いざ環境構築!
今回もこちらの記事を参考にさせていただき、環境構築をしていきます。気合い入れていきましょう!
Dockerfileの作成
$ vi 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 pgx
をpgx
で済ますことができるように設定します。
1 .bashrc
ファイルを作成する
.bashrc
は、シェル起動時に1回実行される隠しファイルです。.bashrc
ファイルにaliasを登録しておけば、次回起動時にもaliasがそのまま使えるようになります。
$ vi .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
・・・(中略)・・・
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>
動きました!お疲れ様でした!