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

本章では、 インストール構成例 に示した構成のインストール方法を説明します。 本章では、各サーバーはそれぞれ以下のホスト名とIPアドレスを持つものとし、 アプリケーション・ノードをSERVER0、 マスター・ノードをSERVER1、SERVER2、SERVER3、 スレーブ・ノードをSERVER4、SERVER5、SERVER6としてクラスターを構成する場合を説明します。

ホスト名 役割 IPアドレス
SERVER0 Lake Server (application) 10.0.0.1
SERVER1 Lake Server (master1) 10.0.0.2
SERVER2 Lake Server (master2) 10.0.0.3
SERVER3 Lake Server (master3) 10.0.0.4
SERVER4 Lake Server (slave1) 10.0.0.5
SERVER5 Lake Server (slave2) 10.0.0.6
SERVER6 Lake Server (slave3) 10.0.0.7

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

以下の手順は、特に指示がない限りすべてのサーバーで実行してください。

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

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

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

[RHEL / CentOS 6]

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

# service iptables stop
# chkconfig iptables off

[RHEL / CentOS 7]

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

# systemctl stop firewalld
# systemctl disable firewalld

(2)/etc/hostsを編集し、GridData Lake Serverをインストールするすべてのサーバーのホスト名と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

(3)hostnameの編集

[RHEL / CentOS 6]

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

SERVER0では以下のように設定します。

HOSTNAME=SERVER0

SERVER1では以下のように設定します。

HOSTNAME=SERVER1

SERVER2~SERVER6についても上記と同様に各ホスト名を設定します。

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

# reboot

[RHEL / CentOS 7]

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

SERVER0では以下のコマンドを実行します。

# hostnamectl set-hostname SERVER0

SERVER1では以下のコマンドを実行します。

# hostnamectl set-hostname SERVER1

SERVER2~SERVER6についても上記と同様に各ホスト名を設定します。

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

# reboot

(4)griddataユーザーを作成します。パスワードは任意に設定してください。

# adduser griddata
# passwd griddata

(5)SSHの設定

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

(5-1)ssh-keygenコマンドで鍵を生成します。このとき、passphraseには何も入力せずにEnterを押します。

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/griddata/.ssh/id_dsa):
Created directory '/home/griddata/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/griddata/.ssh/id_dsa.
Your public key has been saved in /home/griddata/.ssh/id_dsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx griddata@SERVER1

(5-2)鍵が生成されたことを確認します。

$ ls -l ~/.ssh
-rw-------. 1 griddata griddata 668  m月 dd hh:mm yyyy id_dsa
-rw-r--r--. 1 griddata griddata 605  m月 dd hh:mm yyyy id_dsa.pub

(5-3)生成された鍵のうち、公開鍵ファイル「~/.ssh/id_dsa.pub」の内容を「~/.ssh/authorized_keys」ファイルに追加します。

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

(5-4)SSHで自分自身にパスフレーズなしでログインできることを確認します。

$ ssh ${hostname}
Last login: ddd mm dd hh:mm:ss yyyy from SERVER1
$ exit
logout
Connection to SERVER1 closed.

(5-5)マスター・ノード(SERVER1、SERVER2、SERVER3)から、公開鍵ファイル「~/.ssh/id_dsa.pub」を各スレーブ・ノードに配付します。また、アプリケーション・ノード(SERVER0)から、公開鍵ファイル「 ~/.ssh/id_dsa.pub」を各マスター・ノードに配付します。

注釈

以下のような出力が出た場合、画面に従って入力を行ってください。

パスワードは(4)で設定したものを入力してください。

The authenticity of host SERVER2(IP Address)' can't be established.
RSA key fingerprint is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ' SERVER2,IP Address (RSA) to the list of known hosts.
griddata@SERVER2's password:griddata
id_dsa.pub

SERVER1では以下のコマンドを実行します。

$ scp ~/.ssh/id_dsa.pub griddata@SERVER2:SERVER1_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER3:SERVER1_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER4:SERVER1_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER5:SERVER1_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER6:SERVER1_id_dsa.pub

SERVER2では以下のコマンドを実行します。

$ scp ~/.ssh/id_dsa.pub griddata@SERVER1:SERVER2_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER3:SERVER2_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER4:SERVER2_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER5:SERVER2_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER6:SERVER2_id_dsa.pub

SERVER3では以下のコマンドを実行します。

$ scp ~/.ssh/id_dsa.pub griddata@SERVER1:SERVER3_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER2:SERVER3_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER4:SERVER3_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER5:SERVER3_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER6:SERVER3_id_dsa.pub

SERVER0では以下のコマンドを実行します。

$ scp ~/.ssh/id_dsa.pub griddata@SERVER1:SERVER0_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER2:SERVER0_id_dsa.pub
$ scp ~/.ssh/id_dsa.pub griddata@SERVER3:SERVER0_id_dsa.pub

(5-6)マスター・ノードの公開鍵ファイル「SERVER1_id_dsa.pub」および「SERVER2_id_dsa.pub」、 「SERVER3_id_dsa.pub」の内容を、すべてのマスター・ノードとスレーブ・ノードの「~/.ssh/authorized_keys」ファイルに追加します。また、アプリケーション・ノードの公開鍵ファイル「SERVER0_id_dsa.pub」の内容を、すべてのマスター・ノードの「~/.ssh/authorized_keys」ファイルに追加します。

SERVER1では以下のコマンドを実行します。

$ cd ~
$ cat SERVER2_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER2_id_dsa.pub
$ cat SERVER3_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER3_id_dsa.pub
$ cat SERVER0_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER0_id_dsa.pub

SERVER2では以下のコマンドを実行します。

$ cd ~
$ cat SERVER1_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER1_id_dsa.pub
$ cat SERVER3_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER3_id_dsa.pub
$ cat SERVER0_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER0_id_dsa.pub

SERVER3では以下のコマンドを実行します。

$ cd ~
$ cat SERVER1_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER1_id_dsa.pub
$ cat SERVER2_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER2_id_dsa.pub
$ cat SERVER0_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER0_id_dsa.pub

SERVER4~SERVER6では以下のコマンドを実行します。

$ cd ~
$ cat SERVER1_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER1_id_dsa.pub
$ cat SERVER2_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER2_id_dsa.pub
$ cat SERVER3_id_dsa.pub >> ~/.ssh/authorized_keys
$ rm SERVER3_id_dsa.pub

(5-7)マスター・ノード(SERVER1、SERVER2、SERVER3)から、SSHで各スレーブ・ノードにパスフレーズなしでログインできることを確認します。また、アプリケーション・ノード(SERVER0)から、SSHで各マスター・ノードにパスフレーズなしでログインできることを確認します。

SERVER1では以下のコマンドを実行します。

$ ssh SERVER2
Last login: ddd mm dd hh:mm:ss yyyy from SERVER1
$ exit
logout
Connection to SERVER2 closed.
$ ssh SERVER3
Last login: ddd mm dd hh:mm:ss yyyy from SERVER1
$ exit
logout
$ ssh SERVER4
Last login: ddd mm dd hh:mm:ss yyyy from SERVER1
$ exit
logout
$ ssh SERVER5
Last login: ddd mm dd hh:mm:ss yyyy from SERVER1
$ exit
logout
$ ssh SERVER6
Last login: ddd mm dd hh:mm:ss yyyy from SERVER1
$ exit
logout

SERVER2では以下のコマンドを実行します。

$ ssh SERVER1
Last login: ddd mm dd hh:mm:ss yyyy from SERVER2
$ exit
logout
$ ssh SERVER3
Last login: ddd mm dd hh:mm:ss yyyy from SERVER2
$ exit
logout
$ ssh SERVER4
Last login: ddd mm dd hh:mm:ss yyyy from SERVER2
$ exit
logout
$ ssh SERVER5
Last login: ddd mm dd hh:mm:ss yyyy from SERVER2
$ exit
logout
$ ssh SERVER6
Last login: ddd mm dd hh:mm:ss yyyy from SERVER2
$ exit
logout

SERVER3では以下のコマンドを実行します。

$ ssh SERVER1
Last login: ddd mm dd hh:mm:ss yyyy from SERVER3
$ exit
logout
$ ssh SERVER2
Last login: ddd mm dd hh:mm:ss yyyy from SERVER3
$ exit
logout
$ ssh SERVER4
Last login: ddd mm dd hh:mm:ss yyyy from SERVER3
$ exit
logout
$ ssh SERVER5
Last login: ddd mm dd hh:mm:ss yyyy from SERVER3
$ exit
logout
$ ssh SERVER6
Last login: ddd mm dd hh:mm:ss yyyy from SERVER3
$ exit
logout

SERVER0では以下のコマンドを実行します。

$ ssh SERVER1
Last login: ddd mm dd hh:mm:ss yyyy from SERVER0
$ exit
logout
Connection to SERVER1 closed.
$ ssh SERVER2
Last login: ddd mm dd hh:mm:ss yyyy from SERVER0
$ exit
logout
$ ssh SERVER3
Last login: ddd mm dd hh:mm:ss yyyy from SERVER0
$ exit
logout
$ ssh localhost
…
Are you sure you want to continue connecting (yes/no)? yes
Last login: ddd mm dd hh:mm:ss yyyy from localhost
$ exit
logout

(6)SERVER0~SERVER3で、sudoユーザーの変更を行います。

本手順は管理者ユーザーで実行してください。 以下のコマンドで、sudoersファイルを編集します。

# visudo

以下の行を追加します。

# griddata ALL=(ALL) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/gpasswd, /usr/sbin/groupadd, /usr/sbin/groupdel

(7)管理者ユーザーで、/home/griddataにメディアの/softwares/の中身をコピーします。

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

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

2.2. インストール手順

(1)、(2)はgriddataユーザーで実行してください。

(1)lake.tar.gzを解凍します。

$ cd /home/griddata
$ tar -zxvf lake.tar.gz

(2)griddata-core.tar.gzを解凍します。

$ tar -zxvf griddata-core.tar.gz

(3)以降は管理者ユーザーで実行してください。

(3)環境変数の設定用スクリプトgriddata.shを/etc/profile.d/にコピーします。

# cp /home/griddata/griddata-core/griddata.sh /etc/profile.d/

(4)SERVER0で、Embulkサーバーの起動用スクリプトをサービスに登録し、サーバー起動時に自動起動するように設定します。

[RHEL / CentOS 6]

# ln -s /home/griddata/lake/embulk-server/embulk-server.sh /etc/init.d/embulk-server
# chkconfig --add embulk-server

[RHEL / CentOS 7]

# ln -s /home/griddata/lake/embulk-server/embulk-server.service /etc/systemd/system/embulk-server.service
# ln -s /home/griddata/lake/embulk-server/embulk-server.service /etc/systemd/system/multi-user.target.wants/embulk-server.service
# systemctl daemon-reload

(5)SERVER0で、Fluentdサーバーの起動用スクリプトをサービスに登録し、サーバー起動時に自動起動するように設定します。

[RHEL / CentOS 6]

# ln -s /home/griddata/lake/fluentd-server/fluentd-server.sh /etc/init.d/fluentd-server
# chkconfig --add fluentd-server

[RHEL / CentOS 7]

# ln -s /home/griddata/lake/fluentd-server/fluentd-server.service /etc/systemd/system/fluentd-server.service
# ln -s /home/griddata/lake/fluentd-server/fluentd-server.service /etc/systemd/system/multi-user.target.wants/fluentd-server.service
# systemctl daemon-reload

(6)SERVER0で、PostgreSQLをインストールし、Hiveテーブルを生成します。

(6-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

(6-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
# systemctl enable postgresql-9.6

(6-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

(6-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

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

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

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

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

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

(7)SERVER0で、LakeStudioの起動用スクリプトをサービスに登録し、サーバー起動時に自動起動するように設定します。

[RHEL / CentOS 6]

# ln -s /home/griddata/lake/lake-studio/bin/lake-studio.sh /etc/init.d/lake-studio
# chkconfig --add lake-studio

[RHEL / CentOS 7]

# ln -s /home/griddata/lake/lake-studio/systemd/lake-studio.service /etc/systemd/system/lake-studio.service
# ln -s /home/griddata/lake/lake-studio/systemd/lake-studio.service /etc/systemd/system/multi-user.target.wants/lake-studio.service
# ln -s /home/griddata/lake/lake-studio/systemd/lake-studio.service.d /etc/systemd/system/lake-studio.service.d
# systemctl daemon-reload

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

2.3. 初期設定

本節では、GridData Lake Serverの初回起動を行う前に必要な初期設定を行います。

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

■ ZooKeeperの設定

ZooKeeperを起動するすべてのサーバーに、サーバーIDを記述したmyidファイルを作成します。

SERVER1では以下のコマンドを実行します。

$ echo 1 > /home/griddata/griddata-core/zookeeper/tmp/zookeeper/myid

SERVER2では以下のコマンドを実行します。

$ echo 2 > /home/griddata/griddata-core/zookeeper/tmp/zookeeper/myid

SERVER3では以下のコマンドを実行します。

$ echo 3 > /home/griddata/griddata-core/zookeeper/tmp/zookeeper/myid

注釈

ホスト名が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の設定ファイル内のパラメーターについては、 設定パラメーター一覧 を参照してください。

■ Spark-GridDBコネクターの設定

設定ファイル/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

■ Hiveの設定

Hiveサービスを起動するすべてのサーバー(SERVER1、SERVER3)で、以下のファイルを変更します。

$ vi /home/griddata/griddata-core/hive/conf/hive-site.xml

SERVER1では以下の設定を行います。

<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>SERVER1</value>
</property>

SERVER3では以下の設定を行います。

<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>SERVER3</value>
</property>

2.4. 初回起動

本節では各機能の初回起動を行います。 2回目以降の起動方法については、 運用手順 を参照してください。

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

■ HDFSの起動

(1)SERVER1、SERVER2、SERVER3で、ZooKeeperを起動します。

$ cd /home/griddata/griddata-core/zookeeper/logs
$ zkServer.sh start

(2)SERVER1、SERVER2、SERVER3で、JournalNodeを起動します。

$ hadoop-daemon.sh start journalnode

(3)NameNode(Active)が起動するサーバー(SERVER1)で、NameNodeを初期化します。

$ hdfs namenode -format

(4)NameNode(Active)が起動するサーバー(SERVER1)で、NameNodeを起動します。

$ hadoop-daemon.sh start namenode

(5)NameNode(Standby)が起動するサーバー(SERVER2)で、NameNodeを初期化します。

$ hdfs namenode -bootstrapStandby

(6)NameNode(Standby)が起動するサーバー(SERVER2)で、NameNodeを起動します。

$ hadoop-daemon.sh start namenode

(7)NameNode(Active)が起動するサーバー(SERVER1)で、スレーブ・ノードのDataNodeを起動します。

$ hadoop-daemons.sh start datanode

(8)NameNode(Active)が起動するサーバー(SERVER1)で、ZKFCの初期化を行います。

$ hdfs zkfc -formatZK

(9)マスター・ノード(SERVER1、SERVER2)で、ZKFCを起動します。

$ hadoop-daemon.sh start zkfc

(10)NameNode(Active)が起動するサーバー(SERVER1)で、NameNodeの状態を確認します。

$ hdfs haadmin -getServiceState namenode1
active
$ hdfs haadmin -getServiceState namenode2
standby

以上でHDFSの起動は完了です。 HDFSを停止する場合は、 HDFSクラスターを停止する を参照してください。

■ YARNの起動

(1)SERVER1で、HDFS上にSpark用のディレクトリーを作成します。

$ hdfs dfs -mkdir -p /var/log/spark
$ hdfs dfs -chmod 777 /var/log/spark

(2)SERVER1で、HDFS上にSpark実行用のjarファイルをデプロイします。

$ cd /home/griddata/griddata-core/spark
$ hdfs dfs -mkdir -p /user/griddata
$ hdfs dfs -put jars-without-hive /user/griddata/
$ hdfs dfs -put /home/griddata/griddata-core/adapters/griddb/* /user/griddata/jars-without-hive/
$ hdfs dfs -put /home/griddata/griddata-core/adapters/hive/* /user/griddata/jars-without-hive/
$ hdfs dfs -put /home/griddata/griddata-core/adapters/spark/* /user/griddata/jars-without-hive/
$ hdfs dfs -put /home/griddata/griddata-core/hive/lib/hive-exec-2.3.3.jar /user/griddata/jars-without-hive/

(3)ResourceManager(Active)が起動するサーバー(SERVER2)で、YARNのResourceManagerを起動します。

$ yarn-daemon.sh start resourcemanager

(4)ResourceManager(Standby)が起動するサーバー(SERVER3)で、YARNのResourceManagerを起動します。

$ yarn-daemon.sh start resourcemanager

(5)ResourceManager(Active)が起動するサーバー(SERVER2)で、YARNのNodeManagerを起動します。

$ yarn-daemons.sh start nodemanager

以上でYARNの起動は完了です。

YARNを停止する場合は、 YARNクラスターを停止する を参照してください。

■ HistoryServerの起動

(1)SERVER1~SERVER3で、SparkのHistoryServerを起動します。

$ /home/griddata/griddata-core/spark/sbin/start-history-server.sh

HistoryServerを停止する場合は、 HistoryServerを停止する を参照してください。

■ Hiveサービスの起動

(1)SERVER1、SERVER3で、HiveMetastoreサーバーを起動します。

$ hive --service metastore &

(2)SERVER1、SERVER3で、HiveServer2を起動します。

$ hive --service hiveserver2 &

以上でHiveサービスの起動は完了です。

Hiveサービスを停止する場合は、 Hiveサービスを停止する を参照してください。

■ Fluentdサーバーの起動

SERVER0から、管理者ユーザーで以下のコマンドを実行します。

[RHEL / CentOS 6]

# service fluentd-server start

[RHEL / CentOS 7]

# systemctl start fluentd-server

以上でFluentdサーバーの起動は完了です。

■ Embulkサーバーの起動

SERVER0から、管理者ユーザーで以下のコマンドを実行します。

[RHEL / CentOS 6]

# service embulk-server start

[RHEL / CentOS 7]

# systemctl start embulk-server

以上でEmbulkサーバーの起動は完了です。

■ LakeStudioの起動

SERVER0から、管理者ユーザーで以下のコマンドを実行します。

[RHEL / CentOS 6]

# service lake-studio start

[RHEL / CentOS 7]

# systemctl start lake-studio

以上でLakeStudioの起動は完了です。

2.5. 動作確認

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

■ プロセスの確認

各サーバーで、HDFS、YARN、ZooKeeper、Embulkサーバー、Fluentdサーバー、LakeStudio、Hiveサービスのプロセスが起動していることを確認します。

SERVER0の例

$ jps
XXXX Jps
XXXX embulk-server-jar-with-dependencies.jar
XXXX fluentd-server.war
XXXX lake-studio.jar

SERVER1の例

$ jps
XXXX Jps
XXXX QuorumPeerMain
XXXX JournalNode
XXXX DFSZKFailoverController
XXXX NameNode
XXXX HistoryServer
XXXX RunJar
XXXX RunJar

SERVER2の例

$ jps
XXXX Jps
XXXX QuorumPeerMain
XXXX JournalNode
XXXX DFSZKFailoverController
XXXX NameNode
XXXX ResourceManager
XXXX HistoryServer

SERVER3の例

$ jps
XXXX Jps
XXXX QuorumPeerMain
XXXX JournalNode
XXXX ResourceManager
XXXX HistoryServer
XXXX RunJar
XXXX RunJar

SERVER4~SERVER6の例

$ jps
XXXX Jps
XXXX DataNode
XXXX NodeManager

■ HDFSの動作確認

以下の手順はいずれかのサーバーで実行してください。

(1)HDFS上にtestディレクトリーを作成します。

$ hdfs dfs -mkdir -p test

(2)HDFS上にtestディレクトリーが作成されたことを確認します。

$ hdfs dfs -ls
Found 2 items
drwxr-xr-x - griddata supergroup 0 yyyy-mm-dd hh:mm jars-without-hive
drwxr-xr-x - griddata supergroup 0 yyyy-mm-dd hh:mm test

(3)HDFS上のtestディレクトリーを削除します。

$ hdfs dfs -rm -r test
Deleted test
$ hdfs dfs -ls
Found 1 items
drwxr-xr-x - griddata supergroup 0 yyyy-mm-dd hh:mm jars-without-hive

以上でHDFSの動作確認は完了です。

■ Sparkの動作確認

以下のコマンドでSparkのサンプルプログラムを実行し、円周率の計算が行われることを確認します。

$ $SPARK_HOME/bin/run-example --master yarn SparkPi 10
yy/mm/dd hh:mm:ss INFO spark.SparkContext: Running Spark version 2.3.1
…
Pi is roughly 3.1425551425551426
…

以上でSparkの動作確認は完了です。

2.6. ディレクトリー構成

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

注釈

Hadoop、Spark、ZooKeeper、Hiveについては、ディレクトリー構成の記載を省略します。

ディレクトリー 作成されるファイル、ディレクトリー 備考
/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/hive gd-hive-1.0-SNAPSHOT.jar  
  gd-mapreduce.jar  
  json-lib-2.4-jdk15.jar  
/home/griddata/griddata-core/adapters/spark datasource.jar  
/home/griddata/griddata-core/ hadoop/ シンボリックリンク
  hadoop-2.7.6/  
  spark/ シンボリックリンク
  spark-2.3.1-bin-hadoop2.7/  
  hive/ シンボリックリンク
  apache-hive-2.3.3-bin/  
  zookeeper/ シンボリックリンク
  zookeeper-3.4.9/  
  postgresql/  
  griddata.sh  
  griddb.properties  
/home/griddata/lake/embulk-server logs/  
  pids/  
  embulk-server.properties  
  embulk-server.service  
  embulk-server.sh  
  embulk-server-jar-with-dependencies.jar  
  start.sh  
/home/griddata/lake/fluentd-server logs/  
  pids/  
  fluentd-server.properties  
  fluentd-server.service  
  fluentd-server.sh  
  fluentd-server.war  
  start.sh  
/home/griddata/lake/lake-studio logs/  
/home/griddata/lake/lake-studio/conf external_application.properties  
  password-policy.properties  
  quartz.properties  
/home/griddata/lake/lake-studio/bin lake-studio.sh  
  lake-studio.jar  
  setenv.sh  
  start.sh  
/home/griddata/lake/lake-studio/tool check-connection.sh  
/home/griddata/lake/lake-studio/lib ganymed-ssh2-build210.jar  
  gridstore.jar シンボリックリンク
  gridstore-4.0.3.jar  
  ojdbc6.jar  
/home/griddata/lake/lake-studio/systemd lake-studio.service  
/home/griddata/lake/lake-studio/systemd/lake-studio.service.d env.conf