2. GridData Analytics Serverのインストール

本章では、 インストール構成例 に示した構成における、GridData Analytics Serverのインストール方法を説明します。

本章と GridData Analytics Scale Serverのインストール では、各サーバーはそれぞれ以下のホスト名とIPアドレスを持つものとし、 GridData Analytics ServerをSERVER0、 GridData Analytics Scale Serverのマスター・ノードをSERVER1、SERVER2、SERVER3、 スレーブ・ノードをSERVER4、SERVER5、SERVER6としてクラスターを構成します。

マシン名 ホスト名 IPアドレス
GridData Analytics Server SERVER0 10.0.0.1
GridData Analytics Scale Server(master1) SERVER1 10.0.0.2
GridData Analytics Scale Server(master2) SERVER2 10.0.0.3
GridData Analytics Scale Server(master3) SERVER3 10.0.0.4
GridData Analytics Scale Server(slave1) SERVER4 10.0.0.5
GridData Analytics Scale Server(slave2) SERVER5 10.0.0.6
GridData Analytics Scale Server(slave3) SERVER6 10.0.0.7

マニュアル内に登場するIPアドレスは、それぞれ実際の値に置き換えてください。

以下の手順は管理者ユーザーで実行してください。

2.1. インストール前の準備

(1)/tmpにインストールディスクの中身をコピーします。

# cp –rf [モジュールのパス]/* /tmp

(2)ファイアウォールの無効化

[RHEL / CentOS 6]

ファイアウォールとしてiptablesを使用している場合は、以下のように停止し、自動起動を無効化します。

# service iptables stop
# chkconfig iptables off

[RHEL / CentOS 7]

ファイアウォールとしてfirewalldを使用している場合は、以下のように停止し、自動起動を無効化します。

# systemctl stop firewalld
# systemctl disable firewalld

(3)SELINUXの無効化

以下のようにSELINUXを無効化します。

# sed -i -e "s/^SELINUX=enforcing$/SELINUX=disabled/g" /etc/selinux/config
# setenforce 0

(4)sudoユーザーの変更

以下のコマンドで、sudoersファイルを編集します。

# visudo

以下の行のコメントアウトを外します。

(変更前)
# %wheel        ALL=(ALL)       NOPASSWD: ALL
(変更後)
%wheel  ALL=(ALL)       NOPASSWD: ALL

以下の行を追加します。

Cmnd_Alias JUPYTER_CMD = /home/griddata/analytics/anaconda/bin/sudospawner
griddata ALL=(%jupyter) NOPASSWD:JUPYTER_CMD

(5)/etc/hostsの編集

/etc/hostsを編集し、GridData Analyticsをインストールするすべてのサーバーのホスト名とIPアドレスを追加します。

10.0.0.1                SERVER0
10.0.0.2                SERVER1
10.0.0.3                SERVER2
10.0.0.4                SERVER3
10.0.0.5                SERVER4
10.0.0.6                SERVER5
10.0.0.7                SERVER6

(6)hostnameの変更

[RHEL / CentOS 6]

/etc/sysconfig/networkを編集し、(4)で設定したホスト名と一致させます。

HOSTNAME=SERVER0

設定を反映させるためサーバーを再起動します。

# reboot

[RHEL / CentOS 7]

hostnamectlコマンドを実行し、(4)で設定したホスト名と一致させます。

# hostnamectl set-hostname SERVER0

RHEL / CentOS 7の場合、サーバーの再起動は不要です。

(7)Gitのシンボリックリンクの作成

以下はGitが/usr/local/bin/gitにインストールされている場合を例に説明します。

Gitがインストール済みの場合、インストールされている場所を確認します。

# which git
/usr/local/bin/git

/usr/bin/gitにシンボリックリンクがない場合、/usr/bin/gitにシンボリックリンクを作成します。

# ln -s /usr/local/bin/git /usr/bin/git

以上でインストール前の準備は完了です。

2.2. インストール手順

(1)インストールスクリプトの実行

以下のコマンドで、インストールスクリプトを実行します。

[RHEL / CentOS 6]

# cd /tmp/tools/
# chmod a+x ./*.sh
# sh setup_redhat6.sh

[RHEL / CentOS 7]

# cd /tmp/tools/
# chmod a+x ./*.sh
# sh setup_redhat7.sh

インストールスクリプトにより、以下の手順が自動で実行されます。

  • griddataユーザーの作成

    GridData Analyticsの管理用ユーザーとしてgriddataユーザーを作成します。

    ユーザー名 パスワード
    griddata griddata

    インストール完了後、パスワードは必要に応じて変更してください。

  • Anacondaなど、ライブラリーのインストールと設定

  • Sparkクライアントのインストール

  • HDFSクライアントのインストール

  • Jupyterの起動

setup_redhat6.shとsetup_redhat7.shの仕様は以下の通りです。

setup_redhat6.sh [-s|--skip]
setup_redhat7.sh [-s|--skip]

実行中にエラーが発生した場合、インストールログファイルsetup.logにエラーを出力し、インストールを中断します。 トラブルシューティング を参照し、インストール環境や設定を確認してください。

再度インストールスクリプトを実行すると、setup.logの内容に従い、中断した手順からインストールを再開します。必要に応じて --skip オプションを使用してください。

オプション 引数 説明
-s | --skip 中断した手順ではなく、その次の手順からインストールを再開します。中断した手順を手作業により完了した場合に使用します。

インストールをはじめから実行したい場合は、setup.logを削除してからインストールスクリプトを実行してください。

(2)Cupyのインストール

以下の手順はCupyを利用する場合にのみ実行してください。 Cupyのインストール後も、以下の変更を行った場合は本手順によりCuPYを再インストールしてください。

  • CUDA Toolkitのバージョンを変更した
  • cuDNNのバージョンアップやNCCLのインストールなど、CUDA Toolkitのライブラリーを変更した

(2-1)あらかじめGPUをセットアップし、GPUドライバー、CUDA Toolkit、cuDNNをインストールしてください。

(2-2)CUDA Toolkitのパスを、設定ファイル/etc/profile.d/griddata.shに追記します。

以下ではCUDA Toolkitのインストール先がデフォルトの/usr/local/cudaの場合を例に説明します。

# echo 'export PATH=/usr/local/cuda/bin:$PATH' >>  /etc/profile.d/griddata.sh
# echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >>  /etc/profile.d/griddata.sh
# exec $SHELL -l

(2-3)cudaの実行パスにgcc、g++のシンボリックリンクを作成します。

# ln -s /usr/bin/gcc /usr/local/cuda/bin/gcc
# ln -s /usr/bin/g++ /usr/local/cuda/bin/g++

(2-4)インストールスクリプトを実行します。

# cd /tmp/tools/
# chmod a+x ./*.sh
# sh setup_cupy.sh

実行完了には時間がかかる場合があります。

(3)PostgreSQLのインストール

GridData Analytics Scale Serverを利用する場合、 PostgreSQLのインストールと設定が必要です。 GridData Analytics Scale Serverを利用しない場合、本手順は省略して構いません。

(3-1)PostgreSQLをインストールします。

[RHEL / CentOS 6]

# cd /home/griddata/griddata-core/postgresql
# rpm -ivh postgresql96-9.6.9-1PGDG.rhel6.x86_64.rpm postgresql96-libs-9.6.9-1PGDG.rhel6.x86_64.rpm postgresql96-server-9.6.9-1PGDG.rhel6.x86_64.rpm

[RHEL / CentOS 7]

# cd /home/griddata/griddata-core/postgresql
# rpm -ivh postgresql96-9.6.9-1PGDG.rhel7.x86_64.rpm postgresql96-libs-9.6.9-1PGDG.rhel7.x86_64.rpm postgresql96-server-9.6.9-1PGDG.rhel7.x86_64.rpm

(3-2)PostgreSQLを初期化します。

[RHEL / CentOS 6]

# service postgresql-9.6 initdb
# service postgresql-9.6 start
# chkconfig postgresql-9.6 on

[RHEL / CentOS 7]

# /usr/pgsql-9.6/bin/postgresql96-setup initdb
# systemctl start postgresql-9.6.service
# systemctl enable postgresql-9.6.service

(3-3)PostgreSQLを設定します。

以降はpostgresユーザーでおこなってください。

# su - postgres
$ psql -c "alter role postgres with password 'postgres'"

PostgreSQLファイル(postgresql.conf)を編集します。

$ vi 9.6/data/postgresql.conf

以下の設定をします。

listen_addresses = '*'

PostgreSQLファイル(pg_hba.conf)を編集します。

$ vi 9.6/data/pg_hba.conf

以下の設定をします。

local   all     postgres                ident
local   all     all                     md5
host    all     all     0.0.0.0/0       md5

postgresユーザーから管理者ユーザーに戻ります。

$ exit

設定が完了したらPostgreSQLを再起動します。

以降は管理者ユーザーで行ってください。

[RHEL / CentOS 6]

# service postgresql-9.6 restart

[RHEL / CentOS 7]

# systemctl restart postgresql-9.6.service

(3-4)Hiveテーブル生成用SQLをコピーします。

# cp /home/griddata/griddata-core/hive/scripts/metastore/upgrade/postgres/hive-schema-2.3.0.postgres.sql /var/lib/pgsql/
# cp /home/griddata/griddata-core/hive/scripts/metastore/upgrade/postgres/hive-txn-schema-2.3.0.postgres.sql /var/lib/pgsql/
# chown postgres:postgres /var/lib/pgsql/hive-schema-2.3.0.postgres.sql
# chown postgres:postgres /var/lib/pgsql/hive-txn-schema-2.3.0.postgres.sql

(3-5)Hiveテーブルを生成します。

PostgreSQLにHive用DBを作成します。 以降はpostgresユーザーで行ってください。

# su - postgres
$ psql -U postgres
postgres=# create database hive;
postgres=# \q

Hive用DBにHiveテーブルを生成します。

$ psql -f /var/lib/pgsql/hive-schema-2.3.0.postgres.sql -U postgres -d hive
$ exit

以上でPostgresSQLのインストールは完了です。

2.3. 初期設定

以下の機能を利用する場合、初期設定を行います。

  • OracleDBへの接続機能
  • PDF出力機能
  • Spark-GridDBコネクター

以下の手順は管理者ユーザーで実行してください。

■ OracleDBの接続設定

あらかじめOracle instant clientをインストールしてください。

本項では、Oracle instant client 12.2をインストールした場合を例に説明します。 その他のバージョンを使用する場合は、各設定で使用するディレクトリーパスを該当するバージョンのものに置き換えてください。

(1)Oracleクライアントのパスを設定ファイル/etc/profile.d/griddata.shに追記します。

# echo 'export ORACLE_HOME=/usr/lib/oracle/12.2/client64/' >> /etc/profile.d/griddata.sh
# echo 'export PATH=/usr/lib/oracle/12.2/client64/bin:$PATH' >> /etc/profile.d/griddata.sh
# echo 'export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib:$LD_LIBRARY_PATH' >> /etc/profile.d/griddata.sh

(2)Oracle instant client内のディレクトリーにシンボリックリンクを作成します。

# ln -s /usr/include/oracle/12.2/client64 /usr/lib/oracle/12.2/client64/include

(3)Jupyterを起動中の場合は、 Jupyterを再起動する の手順でJupyterを再起動します。

以上でOracleDBの設定は完了です。

■ PDF出力機能の設定

あらかじめtexliveの実行環境をインストールしてください。

本項では、texlive 2018をインストールした場合を例に説明します。 その他のバージョンを使用する場合は、設定で使用するディレクトリーパスを該当するバージョンのものに置き換えてください。

(1)texliveの実行環境のパスを設定ファイル/etc/profile.d/griddata.shに追記します。

# echo 'export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH' >>  /etc/profile.d/griddata.sh

(2)Jupyterを起動中の場合は、 Jupyterを再起動する の手順でJupyterを再起動します。

以上でPDF出力機能の設定は完了です。

■ GridDB Sparkコネクターの設定

設定ファイル/home/griddata/griddata-core/griddb.propertiesに、GridDB APIで規定された接続用パラメーターを記述します。 各パラメーターの詳細はGridDB製品の『GridDB APIリファレンス』を参照してください。

以下はご購入時の設定内容です。

#host=
#port=
#notificationAddress=
#notificationPort=
#notificationMember=
#notificationProvider=
user=admin
password=admin
clusterName=

接続先のGridDBに関する情報と、GridDBのクラスター名 clusterName を必ず指定してください。 接続先のGridDBに関する情報は、以下のいずれかを設定する必要があります。

  • host + port
  • notificationAddress + notificationPort
  • notificationMember
  • notificationProvider

Jupyterを起動中の場合は、設定変更後に Jupyterを再起動する の手順でJupyterを再起動します。

以上でGridDB Sparkコネクタの設定は完了です。

注釈

ホスト名がSERVER0~SERVER6ではない場合、以下の設定ファイルに記述されたホスト名を該当する名前に変更します。

  • /home/griddata/griddata-core/hadoop/conf/hdfs-site.xml
  • /home/griddata/griddata-core/hadoop/conf/slaves
  • /home/griddata/griddata-core/hadoop/conf/hosts.include
  • /home/griddata/griddata-core/hadoop/conf/yarn-site.xml
  • /home/griddata/griddata-core/spark/conf/spark-defaults.conf
  • /home/griddata/griddata-core/spark/conf/spark-env.sh
  • /home/griddata/griddata-core/spark/conf/slaves
  • /home/griddata/griddata-core/zookeeper/conf/zoo.cfg
  • /home/griddata/griddata-core/hive/conf/hive-site.xml

HDFS、YARN、Spark、ZooKeeper、Hiveの設定ファイル内のパラメーターについては、 設定パラメーター一覧 を参照してください。

2.4. 動作確認

インストール完了後、http://<SERVER0のIP>:8000にアクセスし、Jupyterのログイン画面が表示されることを確認します。

もしログイン画面が表示されない場合は、 Jupyterを再起動する の手順でJupyterを再起動します。

(RHEL / CentOS6の場合)
# service jupyter restart
(RHEL / CentOS7の場合)
# systemctl restart jupyter

インストール直後の状態では、GridData Analyticsのユーザーはgriddataユーザーのみです。 他のユーザーを追加するには、 ユーザーを追加する の手順を実行してください。

2.5. ディレクトリー構成

GridData Analytics Serverをインストールすると、以下のディレクトリー構成になります。

注釈

ライブラリーについては、ディレクトリー構成の記載を省略します。

ディレクトリー 作成されるファイル、ディレクトリー 備考
/etc/profile.d/ griddata.sh  
/home/griddata/ .cache/  
  .conda/  
  .jupyter/  
  .ipython/  
  .local/  
  .condarc  
/home/griddata/.ssh/ authorized_keys  
  id_dsa  
  id_dsa.pub  
  known_hosts  
/home/griddata/analytics/ anaconda3-5.2.0/  
  anadonda/ シンボリックリンク
  cupy-4.2.0.zip  
  jupyter.service  
  libx/  
  mecab/  
  nltk_data/  
  setup_redhat6.sh  
  setup_redhat7.sh  
  setup_cupy.sh  
  setup_scaleserver.sh  
  function.sh  
  user.sh  
  distribute_sample.sh  
  jupyter.sh  
  jupyter.service  
/home/griddata/analytics/.jupyter/ jupyterhub_config.py  
/home/griddata/analytics/anaconda/share/jupyter/kernels/ ir/  
  pyspark_small/  
  pyspark_medium/  
  pyspark_large/  
  python3/  
  spylon-kernel/  
/home/griddata/analytics/examples/ sample_bokeh.ipynb  
  sample_chainer.ipynb  
  sample_cupy+matplotlib.ipynb  
  sample_flask.ipynb  
  sample_gdac_nb.ipynb  
  sample_gdac_svm.ipynb  
  sample_griddb_python3.ipynb  
  sample_hdfs.ipynb  
  sample_ipywidget.ipynb  
  sample_lifelines.ipynb  
  sample_mecab.ipynb  
  sample_nltk.ipynb  
  sample_numpy+matplotlib.ipynb  
  sample_pandas.ipynb  
  sample_pyspark.ipynb  
  sample_pyspark_python3.ipynb  
  sample_r.ipynb  
  sample_rdb.ipynb  
  sample_scala.ipynb  
  sample_scikit-image.ipynb  
  sample_scikit-learn.ipynb  
  sample_scipy.ipynb  
  sample_seaborn.ipynb  
  sample_statsmodels.ipynb  
  sample_sympy.ipynb  
/home/griddata/analytics/examples/data/ data_chainer_test.npz  
  data_chainer_train.npz  
  data_gdac_nv_T10_banking.csv  
  data_gdac_nv_T10_banking_test.csv  
  data_gdac_svm_T11_sensor.csv  
  data_gdac_svm_T11_sensor_train.csv  
  data_lifelines.csv  
  data_nltk.txt  
  data_seaborn.csv  
/home/griddata/analytics/griddb/bin403/ libgridstore.so  
  libgridstore.so.0  
  libgridstore.so.0.0.0  
/home/griddata/analytics/anaconda/fonts/IPAfont/ Readme_IPAexfont00301.txt  
  IPA_Font_License_Agreement_v1.0.txt  
  ipaexg.ttf  
/home/griddata/analytics/libx libICE.so.6  
  libSM.so.6  
  libX11.so.6  
  libX11-xcb.so.1  
  libXau.so.6  
  libxcb-*  
  libXext.so.6  
  libXrender.so.1  
  libXt.so.6  
/home/griddata/analytics/mecab/usr/lib64/mecab/dic/ ipadic/  
/home/griddata/griddata-core/adapters/griddb gridstore-4.0.3.jar  
  gridstore-advanced-4.0.3.jar  
  gridstore-jdbc-4.0.3.jar  
/home/griddata/griddata-core/adapters/spark datasource.jar  
/home/griddata/griddata-core/ hadoop-2.7.6/  
  hadoop/ シンボリックリンク
  spark-2.3.1-bin-hadoop2.7/  
  spark/ シンボリックリンク
  apache-hive-2.3.3-bin/  
  hive/ シンボリックリンク
  zookeeper-3.4.9/  
  zookeeper/ シンボリックリンク
  postgresql/  
  griddata.sh  
  griddb.properties