xData Edge 環境構築マニュアル (xData Edge 3.0 準拠)
このマニュアルでは xData Edge の環境構築の方法について、前提知識を最低限に抑えたうえで解説します。
なお、煩雑な用語の乱用を避けているため、一部正確ではない表現があります。
この記事は xData Edgeのインストールガイド の内容を細かく説明したものです。また、xData Edge のバージョン変更により動作 OS が変わった場合はそちらに従ってください。
用語の説明
- Linux
Windows や MacOS のような OS の一種です。
Linux とひとくちにいっても様々な種類 (ディストリビューション) があります。
基本的には文字だけで操作ができます。その際に入力する文字列は「コマンド」と呼びます。
- Ubuntu
Linux の一種 (ディストリビューション) です。
Ubuntu には Ubuntu Desktop と Ubuntu Server というバージョンがあります。ほとんどの機能は同じですが、細部が異なります。
Ubuntu Desktop では動作しないため、今回は Ubuntu Server を使います。
- 仮想環境
OS の中で別の OS を動作させる環境を指します。
内部の OS は「仮想マシン」とも呼ばれます。
- Hyper-V
Windows で仮想環境を作るための方法の一つです。
他にも VirtualBox などがあります。
- IP アドレス
インターネット上の「住所」のようなもので、PC などの場所を示します。
xxx.xxx.xxx.xxx の形式で、それぞれの xxx には 0 から 255 の数が入ります。
- SSH
ある PC から別の PC にインターネット上で接続して操作するための方法です。今回は仮想環境に接続するために使用します。
仮想環境は直接操作できますが、不便です。そのため外部から操作をすることが多いです。
手順
Ubuntu Server のダウンロード
xData Edge は Ubuntu Server という OS にて動作します。
Ubuntu という OS には Ubuntu Desktop と Ubuntu Server が存在します。Ubuntu Desktop では xData Edge の動作にトラブルが生じることが確認されているので、Ubuntu Server のインストールを強く推奨します。
また、Ubuntu Server のバージョンは 18.04 もしくは 20.04 が必要です。 最新版ではありません 。必ず 18.04 か 20.04 をインストールしてください。このマニュアルでは 20.04 をインストールした場合について解説しています。
Ubuntu Server をインストールするためのファイルは https://releases.ubuntu.com/focal/ にて入手できます。"Server install image" の横のリンクからダウンロードしてください。
バージョン 20.04 の場合、ubuntu-20.04.6-live-server-amd64.iso というファイル名です。
Hyper-V の有効化
Hyper-V は通常の状態では機能が無効になっています。そのため、手動で有効にする必要があります。
-
PC を再起動する
以上の手順により、Hyper-V の機能が使えるようになります。
仮想環境の作成
Hyper-V 上で仮想環境を作成します。
スタートメニューを開いた状態で「Hyper-V マネージャー」と直接キーボードで入力すると、「Hyper-V マネージャー」が起動できます。「Hyper-V マネージャー」では仮想環境の作成・起動・設定などを行えます。
この画面で、左にある PC のマシン名を右クリック > 「新規」 > 「仮想マシン」を選択します。
仮想環境の設定をする画面が現れるので、以下の通りに設定します。
- 名前: 何でも良い
- 第 2 世代
- 起動メモリ: 4096 MB (調整するなら倍か半分)
- 接続: Default Switch (「接続しない」以外)
- 仮想ハードディスク: 「仮想ハードディスクを作成する」
- 名前、場所は何でも良い
- サイズは最低 64~128 GB あるといい (上げすぎると PC の容量を圧迫する)
- インストールオプション: 「ブート CD/DVD-ROM からオペレーティング システムをインストールする」
- イメージ ファイル (.iso): 「参照」 > 先ほどダウンロードした OS のインストールファイル (
ubuntu-20.04.6-live-server-amd64.iso) の場所を指定
Ubuntu Server のインストール
作成したばかりの仮想環境には OS が入っていないため、OS をインストールします。
この際、作成した仮想環境の設定で セキュアブートを無効にする 必要があります。そうしなければインストール画面に入ることができません。
Hyper-V マネージャーで作成した仮想環境 (表示は「仮想マシン」) を選択し、右側の「設定」を開きます。
「セキュリティ」 > 「セキュア ブートを有効にする」のチェックを外し、「適用」をクリックします。
これができたら OS のインストールを行えます。Hyper-V マネージャーで作成した仮想マシンを選択し、右側の「接続」を開きます。
仮想マシンを起動した後、しばらく待つと次のような画面が現れます。
この先はすべて文字だけの画面をキーボードで操作します。選択肢を選ぶには、十字キーの上下左右で選択し、Enter キーで決定します (以下、「選択する」でこの操作を含意します)。
「Install Ubuntu Server」を選択します。その後、様々な設定を行います。
以下の点には注意してください。
- 「Installer update available」の画面では、必ず「 Continue without updating 」を選択する
- 「Configure proxy」の画面では、今回は空白のまま進める
- プロキシを設定して運用する場合はこの限りではないが、ここでは扱わない
- 「SSH Setup」の画面では、「Install OpenSSH server」にチェックを付ける
以下、各設定について詳細に説明します。
好きな言語を選択します。基本的に英語 (English) です。
「Continue without updating」を選択します。「Update to the new installer」は xData Edge の動作しない OS バージョンになるので選択しないでください。
キーボード配列を指定します。画像の環境では英字配列ですが、日本語配列 (JIS 配列) キーボードを使っている場合は「Japanese」になります。
ネットワーク設定。ほとんどの場合そのままでよいです。
プロキシ設定。今回は設定しません。設定することも可能ですが、その工程は今回は扱いません。
そのままでよいです。
「Use an entire disk」を選択します。
設定の確認。「Done」を選択します。
誤って中身のあるディスクを消去しないよう確認が出ます。問題がなければ「Continue」を選択します。
ユーザー名など、名前の設定です。
- Your name: 何でもよい。
- Your server's name: ホスト名。他の機器からこの PC はこの名前に見える。
- Pick a username: ユーザー名。最初のログインに使用する。
- Choose a password: パスワード。最初のログインに使用する。
- Confirm your password: パスワードの確認。
インストール後はここで設定したユーザー名とパスワードでログインするため、メモをしておくとよいでしょう。後からユーザーを追加することもできますが、今回はここで作成したユーザーで作業をすることを想定します。
続いていくつかのソフトをインストールするか尋ねられます。
「Install OpenSSH server」にはチェックを入れます。
他のソフトにはチェックは入れる必要はありません。
もし OpenSSH server を入れ忘れたら?
OpenSSH server は後からでもインストールが可能です。OS のインストールが完了した後、ログインした状態で、以下のコマンドを入力します。$ sudo apt install openssh-server
これらの設定が終了したら、次のような画面でインストールが始まります。
この画面では長くて数十分程度かかるので、しばらく待ちます。
「View full log」の下に「Reboot Now」という選択肢が表示されたらインストール終了です。「Reboot Now」を選択し、仮想環境を再起動します。
初めて再起動した後に Failed unmounting /cdrom. という文字が出てきた場合は Enter キーを一度押します
正常に起動できていれば、次のようなログイン画面になります (4 行目に <ユーザー名> login: と書いてあります)。先ほど設定したパスワードを入力すればログインできます。
2 回目以降のログインでは <マシン名> login: と表示されるので、ユーザー名の次にパスワードを入力します。
SSH 接続 (任意)
Hyper-V の仮想環境の画面はマウス操作を受け付けない、過去の操作をスクロールして遡れないなどと不便な点もあります。そのため、仮想環境には SSH クライアント から操作すると便利です。
様々な方法がありますが、今回は Windows 標準機能を PowerShell で使う方法を紹介します。この他にも Tera Term などの SSH クライアントを用いる方法もあります。何を使うかは個人の好みです。
(余談ですが、Windows ターミナルというアプリを使うと PowerShell をさらに便利に使えます。なお、このマニュアルでは Windows ターミナルでスクリーンショットを撮っているため、PowerShell 標準アプリとは見た目が違います。)
SSH 接続をする場合、仮想環境の IP アドレス が必要です。
IP アドレスは仮想環境にログインをした画面で、以下の入力をすることで確認できます。
$ ip addr show
環境によって異なりますが、IP アドレスはおそらく eth0 の欄に書いてあります。inet xxx.xxx.xxx.xxx/xx とあるはずなので、 xxx.xxx.xxx.xxx の部分が知りたい IP アドレスです。
ip addr show で表示される情報が多すぎて見切れる場合、デバイス名を指定して ip addr show eth0 などと入力すれば読みやすくなります。
他にも、ログイン直後の表示から IP アドレスを確認することもできます。下の画像の例では IPv4 address for eth0: xxx.xxx.xxx.xxx と書いてあるのが IP アドレスです。
IP アドレスが分かれば、PowerShell 上から接続を試みます。PowerShell はスタートメニューで「PowerShell」と検索する、などの方法で起動できます。
PowerShell 上で次のように入力します。
> ssh <ユーザー名>@<IP アドレス>
初回接続時に以下のような文言が表示された場合、 yes と入力してください。
The authenticity of host '<ホスト名>' can't be established.
RSA key fingerprint is xxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
ユーザー名と IP アドレスが正しければパスワードが求められるので入力します。成功すると、仮想環境と同じログイン文章が PowerShell 上にも表示されます。
SSH コマンドでエラーが出る場合
次のようなエラーが出る場合、SSH クライアントが Windows にインストールされていません。ssh : 用語 'ssh' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
ファイル転送 (任意)
SSH 接続などで仮想環境を操作する場合、仮想環境の OS で他の場所のファイルを使うには、ファイルを転送する必要があります。ファイルの転送の方法として、 scp コマンドを紹介します。
scp コマンドは Linux や Mac OS のターミナル、Windows の PowerShell などで使用できます。
手元のファイルを送信する場合、 送信元で次のように scp コマンドを入力します。
> scp <送信元のファイルの場所> <送信先のユーザー名>@<送信先の IP アドレス>:<送信先のフォルダ>
逆に、別の場所にあるファイルを受信することもできます。この場合、受信先で次のように入力します。
> scp <受信元のユーザー名>@<受信元の IP アドレス>:<受信元のファイルの場所> <受信先のフォルダ>
ファイル・フォルダの場所 ( パス ) は事前に確認します。Windows なら C:/users/<Windows ユーザー名>/documents/file.zip のような形式です。Linux なら ~/ や /home/<ユーザー名>/file.zip のような形式です。もしパスに空白などが含まれる場合は、全体を "" で括る必要があります。
成功した場合、送り先でファイルが確認できます。
例として、Windows から Linux にファイルを送信するとき、Windows で操作する場合は次のようになります。
> scp "C:/users/<Windows ユーザー名>/documents/file.zip" <Linux ユーザー名>@<Linux 環境の IP アドレス>:~/
この場合、Linux の ~/ フォルダ ( /home/<ユーザー名> と同じです) で file.zip を確認できるはずです。
xData Edge のインストール (1) - パッケージの展開
続いて、xData Edge のインストールに移ります。
まず、xData Edge のインストール用ファイル xdata-edge-base-3.0.zip を仮想環境内に用意します。先述の scp コマンドなどを使うとよいです。
次に、仮想環境内でそのファイルを解凍します。
unzip <ファイルの場所>
unzip コマンドが入っていなければ sudo apt install zip をします。また、ファイルが .tar.gz 形式であればコマンドは tar <ファイルの場所> です。
ファイルが解凍されたら、展開後の場所にカレントディレクトリを移動します。
cd ~/xdata-edge-base-X.X/install
xData Edge のインストール (2) - 動作に必要なソフトウェアのインストール
先ほどまでと同じディレクトリに、 environment-setup.sh があります。これは xData Edge が動作するために必要なソフトウェアを一括でインストールするものです。
これを管理者権限で実行 (sudo) します。
sudo ./environment-setup.sh
この際、パスワードが求められた場合、パスワードを入力してください。
これを実行すると、プロキシの設定を行うかが聞かれます。今回は使わない方法で進めるので、n と入力してください。
Do you need HTTP/HTTPS proxy settings? [y/n]: n
この作業が終わったら、アカウントの ログアウト・再ログイン を 必ず 行ってください。以後の作業でエラーが起きます。
xData Edge のインストール (3) - 各機能のセットアップ
次は、edge-configure.sh を実行します。これは xData Edge の各機能をインストールし、実際に動作を開始するためのスクリプトです。
./edge-configure.sh
実行後の質問は、今回は「EvWH DB を使用・本ホスト上で GPU を使用しない・MMS DataServer は使用しない」とします。
EvWH DB は必要な機能があるため、使用する (y) を選択することを推奨します。他の選択肢は環境によって変えてください。
Do you need the EvWH DB? [y/n]: y
1: Use the GPU analysis feature on this host.
2: Use the GPU analysis feature on another host. Or do not use the GPU analysis feature.
Select a number [1-2]: 2
Do you want to use GPUs in the development environment? [y/n]: n
Do you need the MMS DataServer? [y/n]: n
ログアウト・再ログインをしていない場合のエラー対処法
`environment-setup.sh` の実行後にアカウントからログアウトをしていない状態で `edge-configure.sh` を実行した場合、次のようなエラーが発生します。 Insufficient permissions to accesss MicroK8s.
You can either try again with sudo or add the user <username> to the 'microk8s' group:
...
動作確認
インストール後、xData Edge の動作確認を行います。
まず、xData Edge の各機能の稼働状態を確認します。
kubectl get pods
すると、以下のような表が表示されます。この表のすべての STATUS 欄が Running であればシステムは正常に稼働しています。
ただし、稼働完了まで数分~数十分程度かかることもあります。また、行数 (稼働している機能の数) は設定によって異なります。
NAME READY STATUS RESTARTS AGE
evwhapi-7694689789-2xn4h 1/1 Running 0 69d
dataloaderapi-7bf4744d65-9tpbv 1/1 Running 0 55d
webapi-endpoint-ffc7bf666-5cf4r 1/1 Running 0 54d
analysis-cpu-69c496fcc9-h4lfk 1/1 Running 0 54d
provenanceapi-6f9f7b65dd-29zss 1/1 Running 0 54d
jupyter-7645d64955-5cmhl 1/1 Running 0 54d
evwhdb01-7555c94c98-w7r2j 1/1 Running 0 13d
analysis-gpu-79d9bc9db-wjz58 1/1 Running 0 13d
nginx-796d7fdb6d-88jrm 1/1 Running 0 18s
getfileapi-ff59c8bdc-2g879 1/1 Running 0 18s
filemanipulationapi-6b4d66568b-vc8bz 1/1 Running 0 18s
次に、Web API が疎通しているかどうかを確認します。これは EvWH DB を利用すると選択した場合に行います。
次のコマンドを入力します。
curl -H "Content-type:application/json" -H "APIKey: 0df23f0d-44cb-4085-8ac9-158e6ced3056" -H "Secret: 4AzbY3pvfes33aow49nhjn3aUphv9zFWctcT" -X POST -d '{"id":1, "jsonrpc": "2.0", "method": "prov.get_session_list","params": {"show_all":false}}' http://localhost/api/v1/provenance/jsonrpc
このとき、次のような文字列が直後に表示されていれば正常に動作しています。
{"result": [], "id": 1, "jsonrpc": "2.0"}





























