1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

パソコン(Windows)でデータレイクハウス ~watsonx.data開発者版(developer version)~

Last updated at Posted at 2023-12-03

目次

  1. はじめに
  2. 前提
  3. watsonx.data開発者版をインストール
    3.1 エンタイトルメントAPIキーを取得
    3.2 Podmanマシンのシェルを起動
    3.3 インストールを実行
  4. コンテナの起動と停止
  5. 動作確認
    5.1 watsonx.dataのWeb画面
    5.2 PrestoのWeb画面
    5.3 Prestoのコマンドライン・インターフェース
  6. リモート端末からの接続
  7. 参考資料

1. はじめに

データレイクハウスとwatsonx.dataについて歴史も含めた解説記事が公開されていますので、ご覧ください。本記事はその開発者版(deverloper version)の紹介です。

watsonx.dataはサービスとしてAWSおよびIBM Cloudで提供されていて、またセルフマネージドのソフトウェアとしてクラウド環境(OpenShift)にインストールすることもできます。さらに開発者版(deverloper version)をパソコン(Windows, Mac, Linux)にインストールできます。開発者版はOpenShift環境を簡単に入手できない場合、開発や画面インターフェース確認などの用途で有用です。

本記事ではwatsonx.dataをWindowsパソコンにインストールして動作確認した例を紹介します。PodmanまたはDockerをインストールすれば、その後はwatsonx.dataのマニュアルに沿ってインストールできて、悩むところは無いと思います。本記事ではマニュアルに載っていない次の2点を含めてインストール方法を説明します。

  • watsonx.dataインストール・コマンドの出力メッセージ詳細
  • リモート端末から接続するためのWindows設定方法

なお、本記事で触れないwatsonx.dataの様々な使い方がQiitaに投稿されていますので、ご覧ください。

2. 前提

  1. watsonx.dataのソフトウェア・ライセンスが必要です。ライセンスがあれば開発者版を無料で利用できます。また開発者版専用のソフトウェア・ライセンスはありません。
    補足)watsonx.dataのフルマネージド・サービスを無料でトライアル(1500米ドル分)できます。

  2. Windows環境においてWSL2が必要です。これからインストールする場合は、次のQiita記事が参考になります。

  3. Windows環境においてPodmanまたはDockerが必要です。Podmanのインストール方法などWindows用ガイドは次のページです。

  4. 本記事で使った環境は次の通りです。

    • Windows 11 22H2(OSビルド 22621.2715)
    • WSL 2.0.9.0
    • Podman 4.8.0
    • watsonx.data 1.0.3

3. watsonx.data開発者版をインストール

3.1 エンタイトルメントAPIキーを取得

次のページからキーを取得します。
https://myibm.ibm.com/products-services/containerlibrary
image.png

3.2 Podmanマシンのシェルを起動

PowerShellを起動します。次のマニュアルを参考にしてPodmanマシン(Fedora Linux)を作成・起動します。その名前を本記事ではデフォルトのpodman-machine-defaultとします。

PS C:\Users\xxxx> podman machine init
PS C:\Users\xxxx> podman machine start
Starting machine "podman-machine-default"
...
PS C:\Users\xxxx> wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
podman-machine-default

Podmanマシンpodman-machine-defaultのシェルを起動します。

PS C:\Users\xxxx> wsl -d podman-machine-default
[user@xxxx ~]$ pwd
/home/user

3.3 インストールを実行

次のマニュアルを参考にして手順を進めます。

まずPodmanプラグインをインストールします。なお、この後の説明ではPodmanマシンのプロンプト[user@xxxx ~]$を簡略化して$と表示します。

$ sudo dnf install -y podman-plugins
...
Installed:
  dbus-libs-1:1.14.10-1.fc38.x86_64                    dnsmasq-2.89-5.fc38.x86_64                    podman-plugins-5:4.7.2-1.fc38.x86_64
Complete!

インストール・ディレクトリを作成します。

$ mkdir wxd
$ cd wxd
$ pwd
/home/user/wxd

環境変数を設定します。IBM_ENTITLEMENT_KEYに3.1節で取得したキーを設定します。本記事ではPodmanを使うのでDOCKER_EXEにpodmanを設定します。

$ export LH_ROOT_DIR=/home/user/wxd
$ export LH_RELEASE_TAG=latest
$ export IBM_LH_TOOLBOX=cp.icr.io/cpopen/watsonx-data/ibm-lakehouse-toolbox:$LH_RELEASE_TAG
$ export LH_REGISTRY=cp.icr.io/cp/watsonx-data
$ export PROD_USER=cp
$ export IBM_ENTITLEMENT_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$ export IBM_ICR_IO=cp.icr.io
$ export DOCKER_EXE=podman

インストール・パッケージを取得します。

$ $DOCKER_EXE pull $IBM_LH_TOOLBOX
Trying to pull cp.icr.io/cpopen/watsonx-data/ibm-lakehouse-toolbox:latest...
Getting image source signatures
Checking if image destination supports signatures
Copying blob b274539e1ba3 done   |
...
Writing manifest to image destination
Storing signatures
915ef012a5d87e48c4d6dcdef278d639304f8d2281b658035f0451d7b91ef2fa

$ $DOCKER_EXE images
REPOSITORY                                           TAG         IMAGE ID      CREATED       SIZE
cp.icr.io/cpopen/watsonx-data/ibm-lakehouse-toolbox  latest      915ef012a5d8  2 months ago  96.1 MB

インストール・パッケージを解凍します。

$ id=$($DOCKER_EXE create $IBM_LH_TOOLBOX)
$ $DOCKER_EXE cp $id:/opt - > /tmp/pkg.tar
$ $DOCKER_EXE rm $id
6a366bc82f36d93981700104d1d58d216d503669d16de46d44b38f56fd2b78d1
$ id=
$ tar -xf /tmp/pkg.tar -C /tmp
$ cat /tmp/opt/bom.txt
...
Directory structure
-------------------
/opt/
+-- bom.txt
+-- client
    +-- ibm-lh-client-1.0.3-255-20230912-165706-onprem-v1.0.3.tgz
    \-- README.txt
+-- dev
    +-- ibm-lh-dev-1.0.3-255-20230912-165706-onprem-v1.0.3.tgz
    \-- README.txt
\-- standalone
    +-- ibm-lakehouse-manage
    \-- README.txt

Checksum
--------
# cksum /opt/*/*
4114574099 4810 /opt/client/README.txt
2844315941 768528 /opt/client/ibm-lh-client-1.0.3-255-20230912-165706-onprem-v1.0.3.tgz
1619773671 155 /opt/dev/README.txt
3422166850 770444 /opt/dev/ibm-lh-dev-1.0.3-255-20230912-165706-onprem-v1.0.3.tgz
1531423063 161 /opt/standalone/README.txt
2593951694 10837 /opt/standalone/ibm-lakehouse-manage

$ cksum /tmp/opt/*/*
4114574099 4810 /tmp/opt/client/README.txt
2844315941 768528 /tmp/opt/client/ibm-lh-client-1.0.3-255-20230912-165706-onprem-v1.0.3.tgz
1619773671 155 /tmp/opt/dev/README.txt
3422166850 770444 /tmp/opt/dev/ibm-lh-dev-1.0.3-255-20230912-165706-onprem-v1.0.3.tgz
1531423063 161 /tmp/opt/standalone/README.txt
2593951694 10837 /tmp/opt/standalone/ibm-lakehouse-manage

$ tar -xf /tmp/opt/dev/ibm-lh-dev-*.tgz -C $LH_ROOT_DIR
$ ls $LH_ROOT_DIR
ibm-lh-dev

コンテナ・イメージを取得します。

$ $DOCKER_EXE login ${IBM_ICR_IO} \
--username=${PROD_USER} \
--password=${IBM_ENTITLEMENT_KEY}
Login Succeeded!

$ . $LH_ROOT_DIR/ibm-lh-dev/etc/launch_config.env
$ $LH_ROOT_DIR/ibm-lh-dev/bin/setup --license_acceptance=y --runtime=$DOCKER_EXE
=======   updating configuration =======
creating /home/user/wxd/ibm-lh-dev/localstorage/volumes/infra
==== pulling image for lhconsole-ui from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/lhconsole-ui:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for lhconsole-nodeclient from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/lhconsole-nodeclient:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for lhconsole-javaapi from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/lhconsole-javaapi:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for lhconsole-api from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/lhconsole-api:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for ibm-lh-control-plane-prereq from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/ibm-lh-control-plane-prereq:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for ibm-lh-minio from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/ibm-lh-minio:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for ibm-lh-postgres from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/ibm-lh-postgres:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for lh-hive-metastore from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/ibm-lh-hive-metastore:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
==== pulling image for ibm-lh-presto from cp.icr.io/cp/watsonx-data  ====
Trying to pull cp.icr.io/cp/watsonx-data/ibm-lh-presto:1.0.3-255-20230912-165706-onprem-v1.0.3...
...
Updating password for user ibmlhadmin

$ $DOCKER_EXE images
REPOSITORY                                             TAG                                      IMAGE ID      CREATED       SIZE
registry.access.redhat.com/ubi8-micro                  latest                                   e0162d9d175f  3 weeks ago   28.5 MB
cp.icr.io/cpopen/watsonx-data/ibm-lakehouse-toolbox    latest                                   915ef012a5d8  2 months ago  96.1 MB
cp.icr.io/cp/watsonx-data/lhconsole-ui                 1.0.3-255-20230912-165706-onprem-v1.0.3  abd7ab8601d9  2 months ago  242 MB
cp.icr.io/cp/watsonx-data/lhconsole-nodeclient         1.0.3-255-20230912-165706-onprem-v1.0.3  c0e20b285a42  2 months ago  353 MB
cp.icr.io/cp/watsonx-data/lhconsole-javaapi            1.0.3-255-20230912-165706-onprem-v1.0.3  c36b85637791  2 months ago  413 MB
cp.icr.io/cp/watsonx-data/lhconsole-api                1.0.3-255-20230912-165706-onprem-v1.0.3  b1bf6d033430  2 months ago  440 MB
cp.icr.io/cp/watsonx-data/ibm-lh-control-plane-prereq  1.0.3-255-20230912-165706-onprem-v1.0.3  09c757eb4ff0  2 months ago  1.15 GB
cp.icr.io/cp/watsonx-data/ibm-lh-presto                1.0.3-255-20230912-165706-onprem-v1.0.3  697a67646d2c  2 months ago  4.27 GB
cp.icr.io/cp/watsonx-data/ibm-lh-hive-metastore        1.0.3-255-20230912-165706-onprem-v1.0.3  f3635bb6efe2  2 months ago  1.89 GB
cp.icr.io/cp/watsonx-data/ibm-lh-minio                 1.0.3-255-20230912-165706-onprem-v1.0.3  55b7809c8e92  2 months ago  220 MB
cp.icr.io/cp/watsonx-data/ibm-lh-postgres              1.0.3-255-20230912-165706-onprem-v1.0.3  356998709ae3  3 months ago  372 MB

4. コンテナの起動と停止

startコマンドで起動します。

$ $LH_ROOT_DIR/ibm-lh-dev/bin/start
-- starting container for ibm-lh-minio...
8f04446135fcc1caa9e59e42e7c1a51e98d363b950c1edebe1e4acb836781127
-- starting container for ibm-lh-postgres...
31c18aef2e7b6bbc7aae9570fcbaee71a43a087ffc5ca5cdfd5ce9a9d515245a
Checking container: ibm-lh-postgres
Container ID for ibm-lh-postgres is: 31c18aef2e7b
Postgres status is:
localhost:5432 - no response localhost:5432 - accepting connections
-- starting container for ibm-lh-control-plane-prereq...
-- starting container for lhconsole-api...
d6a752da0287b1a5ae4f0c9b6513a70da6b8fa21672d6e5d92ebb3fd60b33e0e
-- starting container for lh-hive-metastore...
35d407ab6660f4b0cbaefc479dbe2aa04722965732cffa41ac859efc91a2a07f
-- starting container for ibm-lh-presto...
35cb92d9be3f3aa71ad028a3da3940ce04b092231c7b1ed0749b5171992bf81a
Waiting for ibm-lh-presto to be ready....
-- starting container for lhconsole-javaapi...
a3953fddb79543b46df0b8f2df6c8303fca02e818de04de2e9abaf8d5c13065a
-- starting container for lhconsole-nodeclient...
6f2c7b352895cefd1d2b0a07bbe5740f828355b313f99ce5c809039ee48423a0
-- starting container for lhconsole-ui...
d40355ffd7f66837bd5dfab8d34967c3df78609159dc8f98884c178886e38809

$ $DOCKER_EXE ps
CONTAINER ID  IMAGE                                                                                    COMMAND            CREATED             STATUS     PORTS                   NAMES
8f04446135fc  cp.icr.io/cp/watsonx-data/ibm-lh-minio:1.0.3-255-20230912-165706-onprem-v1.0.3                              2 minutes ago       Up 2 minutes                             ibm-lh-minio
31c18aef2e7b  cp.icr.io/cp/watsonx-data/ibm-lh-postgres:1.0.3-255-20230912-165706-onprem-v1.0.3                           2 minutes ago       Up 2 minutes                             ibm-lh-postgres
d6a752da0287  cp.icr.io/cp/watsonx-data/lhconsole-api:1.0.3-255-20230912-165706-onprem-v1.0.3          /scripts/start.sh  About a minute ago  Up About a minute                          lhconsole-api
35d407ab6660  cp.icr.io/cp/watsonx-data/ibm-lh-hive-metastore:1.0.3-255-20230912-165706-onprem-v1.0.3                     About a minute ago  Up About a minute                          ibm-lh-hive-metastore
35cb92d9be3f  cp.icr.io/cp/watsonx-data/ibm-lh-presto:1.0.3-255-20230912-165706-onprem-v1.0.3                             About a minute ago  Up About a minute  0.0.0.0:8443->8443/tcp  ibm-lh-presto
a3953fddb795  cp.icr.io/cp/watsonx-data/lhconsole-javaapi:1.0.3-255-20230912-165706-onprem-v1.0.3                         44 seconds ago      Up 44 seconds                             lhconsole-javaapi-svc
6f2c7b352895  cp.icr.io/cp/watsonx-data/lhconsole-nodeclient:1.0.3-255-20230912-165706-onprem-v1.0.3   ./start.sh         44 seconds ago      Up 44 seconds                             lhconsole-nodeclient-svc
d40355ffd7f6  cp.icr.io/cp/watsonx-data/lhconsole-ui:1.0.3-255-20230912-165706-onprem-v1.0.3           /scripts/start.sh  44 seconds ago      Up 44 seconds     0.0.0.0:9443->8443/tcp  lhconsole-ui

$ $LH_ROOT_DIR/ibm-lh-dev/bin/status --all
ibm-lh-hive-metastore                           running
ibm-lh-minio                            running
ibm-lh-postgres                         running
ibm-lh-presto                           running                 0.0.0.0:8443->8443/tcp
lhconsole-api                           running
lhconsole-javaapi-svc                           running
lhconsole-nodeclient-svc                                running
lhconsole-ui                            running                 0.0.0.0:9443->8443/tcp

stopコマンドで停止します。

$ $LH_ROOT_DIR/ibm-lh-dev/bin/stop
Inspecting docker image lhconsole-ui before removal:
lhconsole-ui still running. Removing lhconsole-ui...
lhconsole-ui

Inspecting docker image lhconsole-nodeclient before removal:
lhconsole-nodeclient still running. Removing lhconsole-nodeclient...
lhconsole-nodeclient-svc

Inspecting docker image lhconsole-javaapi before removal:
lhconsole-javaapi still running. Removing lhconsole-javaapi...
lhconsole-javaapi-svc

Inspecting docker image lhconsole-api before removal:
lhconsole-api still running. Removing lhconsole-api...
lhconsole-api

Inspecting docker image ibm-lh-presto before removal:
ibm-lh-presto still running. Removing ibm-lh-presto...
ibm-lh-presto

Inspecting docker image lh-hive-metastore before removal:
lh-hive-metastore still running. Removing lh-hive-metastore...
ibm-lh-hive-metastore

Inspecting docker image ibm-lh-postgres before removal:
ibm-lh-postgres still running. Removing ibm-lh-postgres...
ibm-lh-postgres

Inspecting docker image ibm-lh-minio before removal:
ibm-lh-minio still running. Removing ibm-lh-minio...
ibm-lh-minio

$ $LH_ROOT_DIR/ibm-lh-dev/bin/status -all
$ logout
[user@yyyy xxxx]$ logout
PS C:\Users\xxxx> podman machine stop podman-machine-default
Machine "podman-machine-default" stopped successfully

5. 動作確認

5.1 watsonx.dataのWeb画面

Webブラウザで次のURLを開いて、詳細設定をクリックします。
https://localhost:9443/
image.png
localhostに進むをクリックします。
image.png
ログイン画面が表示されました。ユーザー名はibmlhadmin、パスワードはpasswordです。
image.png
次の画面が表示されます。左側のアイコン(インフラストラクチャー・マネージャー)をクリックします。
image.png
次の画面が表示されてデータベース・エンジン、カタログ、バケットの構成を確認できます。
image.png

5.2 PrestoのWeb画面

Webブラウザで次のURLを開きます。ポップアップが表示されるので、ユーザー名とパスワードを入力します。ユーザー名はibmlhadmin、パスワードはpasswordです。
https://localhost:8443/
image.png
次の画面が表示されて、クエリの状態を確認できます。
image.png

5.3 Prestoのコマンドライン・インターフェース

watsonx.dataにはTPC-Hのデータがサンプルとして入っています。そのテーブル一覧を表示して、customerテーブルをSELECTしてみます。

$ $LH_ROOT_DIR/ibm-lh-dev/bin/presto-cli --catalog=tpch
presto> SELECT * FROM information_schema.tables ORDER BY table_schema, table_name;
 table_catalog |    table_schema    |    table_name    | table_type
---------------+--------------------+------------------+------------
 tpch          | information_schema | applicable_roles | BASE TABLE
 ...
 tpch          | tiny               | customer         | BASE TABLE
 tpch          | tiny               | lineitem         | BASE TABLE
 tpch          | tiny               | nation           | BASE TABLE
 tpch          | tiny               | orders           | BASE TABLE
 tpch          | tiny               | part             | BASE TABLE
 tpch          | tiny               | partsupp         | BASE TABLE
 tpch          | tiny               | region           | BASE TABLE
 tpch          | tiny               | supplier         | BASE TABLE
(80 rows)

presto> SELECT * FROM tiny.customer LIMIT 2;
 custkey |        name        |         address         | nationkey |      phone      | acctbal | mktsegment |                                             >
---------+--------------------+-------------------------+-----------+-----------------+---------+------------+--------------------------------------------->
    1117 | Customer#000001117 | 80NfzBRWj5tUUaRdnsFE7Eg |        23 | 33-461-439-5684 | 2829.07 | FURNITURE  |  ironic deposits need to haggle furiously. f>
    1118 | Customer#000001118 | QHg,DNvEVXaYoCdrywazjAJ |        11 | 21-583-715-8627 | 4130.18 | HOUSEHOLD  | y regular requests above the blithely ironic>

presto> quit

6. リモート端末からの接続

次の記事を参考にしてWindowsからPodmanマシンへのポートフォワードを設定します。

リモート端末から前節のWeb画面に接続します。Windows環境のIPアドレスが192.168.xxx.xxxであればwatsonx.dataとPrestoのWeb画面URLは次のようになります。

  • https://192.168.xxx.xxx:9443/
  • https://192.168.xxx.xxx:8443/

7. 参考資料

  1. 岡口純子:データレイクハウスという選択肢 ~オープンなアーキテクチャを備えるレイクハウスソリューション「watsonx.data」, iMagazine, 2023年11月10日.
    https://www.imagazine.co.jp/watsonx-lake-house-solution/

  2. watsonx.dataタグの付いたQiita記事
    https://qiita.com/tags/watsonx.data

  3. エンタイトルメントAPIキーの入手方法 (Obtaining your IBM entitlement API key)
    https://www.ibm.com/docs/en/watsonxdata/1.1.x?topic=planning-licenses-entitlements#licensing__title__4

  4. wsl2にUbuntu環境を構築する【windows】
    https://qiita.com/ryome/items/240f36923f5cb989da27

  5. Podman for Windows
    https://github.com/containers/podman/blob/main/docs/tutorials/podman-for-windows.md

  6. watsonx.data開発者版インストール・マニュアル (Installing the watsonx.data developer version)
    https://www.ibm.com/docs/en/watsonxdata/1.1.x?topic=edition-installing-watsonxdata-developer-version

  7. Windows (WSL)で動いているPodmanマシンにポートフォワード
    https://qiita.com/yamasakk/items/5260e670065f5d2b9e09

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?