はじめに
ibm-lh-clientパッケージには、watsonx.dataへのアクセスや、watsonx.dataと連携するアプリケーションを開発するための便利なユーティリティとライブラリが含まれています。
ここではibm-lh-clientパッケージのインストール方法を紹介します。
環境
使用したサーバ環境は以下になります。
・Red Hat OpenShift Container Platform 4.14
・IBM Cloud Pak for Data (CP4D) 5.0.3
・IBM watsonx.data 2.0.3
・Presto (Java) v0.286
使用したクラアント環境は以下になります。
・Red Hat Enterprise Linux release 8.10 (Ootpa)ibm-lh-client
・Podman version 4.9.4-rhel
事前準備
最新バージョンのDockerまたはPodmanをクライアント環境にインストールしてください。DockerまたはPodmanどちらを選んでもかまいません。具体的は次をご参照ください:Installing ibm-lh-client:Before you begin。
今回は、クライアントとして使用するRHELにPodmanをインストールして検証を行いました。クライアントの導入や作業はnon-rootユーザーで行う必要があるので、ここではuser01というユーザーを使用しています。
[user01@client ~]$ podman -v
podman version 4.9.4-rhel
インストール手順
1.必要情報収集
IBM Entitled Registry にアクセスするため、 container software libraryから認証キー(entitlement key)を取得してください。認証キーを使用してIBM Entitled Registryからイメージをローカルシステムにプルすることができます。
2.作業ディレクトリと環境変数を設定する
作業ディレクトリと環境変数を設定するために、以下のコード実行する必要があります。
mkdir <install_directory>
cd <install_directory>
export LH_ROOT_DIR=<install_directory>
export IBM_ENTITLEMENT_KEY=<ibm_entitlement_key>
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_ICR_IO=cp.icr.io
export DOCKER_EXE=<docker_exe>
export LANG=<lang>
上記のコードは5つのステップに分けることができます。以下で、実際実行した例を使って説明します。
(1)作業ディレクトリの作成
作業ディレクトリ${HOME}/watsonxdata
を使用します。${HOME}/watsonxdata
を作成して、環境変数LH_ROOT_DIR
に${HOME}/watsonxdata
を設定します。
[user01@client ~]$ mkdir watsonxdata
[user01@client ~]$ cd watsonxdata
[user01@client watsonxdata]$ export LH_ROOT_DIR=${HOME}/watsonxdata
(2)IBM_ENTITLEMENT_KEYの設定
上の必要情報収集で収集した認証キー(entitlement key)を使います。
[user01@client watsonxdata]$ export IBM_ENTITLEMENT_KEY=<ibm_entitlement_key>
(3)ibm-lh-clientパッケージの導入
今回は最新のCloud Pak for Data を使用するため、ibm-lh-clientパッケージのバージョンはlatestを指定します。本原稿執筆時点はlatestタグはv2.0.3に設定されています。Cloud Pak for Dataバージョンとibm-lh-clientパッケージバージョンはInstalling ibm-lh-client:Procedureの中の対応表"Release tags with Cloud Pak for Data versions"を確認してください。
[user01@client watsonxdata]$ export LH_RELEASE_TAG=latest
[user01@client watsonxdata]$ export IBM_LH_TOOLBOX=cp.icr.io/cpopen/watsonx-data/ibm-lakehouse-toolbox:$LH_RELEASE_TAG
[user01@client watsonxdata]$ export LH_REGISTRY=cp.icr.io/cp/watsonx-data
[user01@client watsonxdata]$ export PROD_USER=cp
[user01@client watsonxdata]$ export IBM_ICR_IO=cp.icr.io
(4)コンテナエンジンの設定
今回はPodmanを使用するので、DOCKER_EXEをPodmanに設定しています。
[user01@client watsonxdata]$ export DOCKER_EXE=podman
Dockerを使用している場合は、以下のコマンドを実行してください。
export DOCKER_EXE=docker
(5)環境変数LANG
の設定
環境変数LANG
は、マルチバイト文字(MBCS)をサポートするためにコンテナに渡されます。LANG
が設定されていない場合、デフォルトはen_US.UTF-8
と見なされます。日本語環境の場合は次のように指定します。
[user01@client watsonxdata]$ export LANG=ja_JP.utf8
.bashrc
にexport LANG=ja_JP.utf8
を登録しておくと次回ログインする時からexport LANG=ja_JP.utf8
が設定されるので便利です。
3.ibm-lh-clientパッケージをコピーする
ibm-lh-clientパッケージをプルします。その後、クラアント環境にコピーします。
[user01@client watsonxdata]$ $DOCKER_EXE pull $IBM_LH_TOOLBOX
[user01@client watsonxdata]$ id=$($DOCKER_EXE create $IBM_LH_TOOLBOX)
[user01@client watsonxdata]$ $DOCKER_EXE cp $id:/opt - > /tmp/pkg.tar
[user01@client watsonxdata]$ $DOCKER_EXE rm $id
[user01@client watsonxdata]$ id=
4.ibm-lh-clientパッケージpkg.tarファイルを解凍する
ibm-lh-clientパッケージpkg.tarファイルを解凍します。
[user01@client watsonxdata]$ tar -xf /tmp/pkg.tar -C /tmp
bom.txtに記載されているChecksumを確認します。
[user01@client watsonxdata]$ cat /tmp/opt/bom.txt
...
Checksum
--------
# cksum /opt/*/*
4114574099 4810 /opt/client/README.txt
1774217242 765216 /opt/client/ibm-lh-client-2.0.3-148-20240912-005600-onprem-v2.0.3.tgz
1619773671 155 /opt/dev/README.txt
4147316610 767487 /opt/dev/ibm-lh-dev-2.0.3-148-20240912-005600-onprem-v2.0.3.tgz
次はcksumコマンドの出力です。bom.txtに記載されているChecksumとcksumコマンドの出力を比較して、内容が同じであることを確認します。
[user01@client watsonxdata]$ cksum /tmp/opt/*/*
1774217242 765216 /tmp/opt/client/ibm-lh-client-2.0.3-148-20240912-005600-onprem-v2.0.3.tgz
4114574099 4810 /tmp/opt/client/README.txt
4147316610 767487 /tmp/opt/dev/ibm-lh-dev-2.0.3-148-20240912-005600-onprem-v2.0.3.tgz
1619773671 155 /tmp/opt/dev/README.txt
ibm-lh-clientパッケージを$LH_ROOT_DIR
で指定した${HOME}/watsonxdata
という作業ディレクトリに解凍します。
[user01@client watsonxdata]$ tar -xf /tmp/opt/client/ibm-lh-client-*.tgz -C $LH_ROOT_DIR
5.レジストリにログインする
レジストリにログインします。
[user01@client watsonxdata]$ $DOCKER_EXE login ${IBM_ICR_IO} \
> --username=${PROD_USER} \
> --password=${IBM_ENTITLEMENT_KEY}
Login Succeeded!
6.セットアップスクリプトを実行する
最後に、セットアップスクリプトを実行します。
[user01@client watsonxdata]$ $LH_ROOT_DIR/ibm-lh-client/bin/setup --license_acceptance=y --runtime=$DOCKER_EXE
======= updating configuration =======
creating /home/user01/watsonxdata/ibm-lh-client/localstorage/volumes/infra
==== pulling image for ibm-lh-client-mgmt from cp.icr.io/cp/watsonx-data ====
...
==== pulling image for ibm-lh from cp.icr.io/cp/watsonx-data ====
...
Writing manifest to image destination
...
以上、この6つのステップで、ibm-lh-clientパッケージのインストールが完了しました。
ibm-lh-clientをインストールした後のディレクトリ構造
ibm-lh-clientパッケージが正常にインストールされた後、${HOME}/watsonxdata
ディレクトリのディレクトリ構造は以下のようになります。
[user01@client watsonxdata]$ tree
.
`-- ibm-lh-client
|-- bin
| |-- backup-restore
| | |-- backup-metadata
| | |-- extract-bucket-data
| | |-- import-bucket-data
| | |-- README.txt
| | `-- restore-lakehouse
| |-- bash-run
| |-- cert-mgmt
| |-- common-utils.sh
| |-- connect-lh
| |-- dev-sandbox
| |-- extract_files.sh
| |-- ibm-lh
| |-- ibm-lh-client-mgmt
| |-- manage-engines
| |-- presto-cli
| |-- presto-run
| |-- python-run
| `-- setup
|-- etc
| |-- ...
| `-- python-run.conf
|-- examples
| `-- apis
| |-- ...
| `-- 11-statement.sh
|-- licenses
| |-- ...
| `-- notices.txt
|-- localstorage
| `-- volumes
| |-- ibm-lh
| |-- ibm-lh-client-mgmt
| |-- infra
| | |-- ibm-lh-secrets
| | | `-- LH_TRUSTSTORE_PASSWORD
| | `-- tls
| | |-- aliases
| | |-- cabundle.crt
| | |-- pki
| | | `-- tls-ca-bundle.pem
| | `-- truststore.jks
| |-- lh-cli
| |-- presto-cli
| `-- presto-run
|-- README.txt
`-- run
20 directories, 107 files
参考資料
ibm-lh-clientパッケージのインストールについては、Installing ibm-lh-clientを参考にしてください。