Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


20.6.1 HADBのコマンドの実行方法

DockerおよびKubernetesを使用してHADBのコマンドを実行する手順を説明します。

手順

  1. HADBサーバ起動コンテナのシェルを取得する

    次のコマンドを実行してください。

    ■コマンドの実行例

    kubectl exec -it hadb-server-5fd5cc7fb8-8jv58 /bin/bash

    [説明]

    次のとおりに指定してください。

    • Pod名(ここではhadb-server-5fd5cc7fb8-8jv58

      kubectl get podsコマンドで取得した,HADBサーバ起動コンテナが配置されているPodの名前を指定してください。

    • シェル(ここでは/bin/bash

      引数を指定する場合は,指定するシェルの前にダブルダッシュ(--)を指定してください。

      ■コマンドの実行例

      kubectl exec -it hadb-server-5fd5cc7fb8-8jv58 -- /bin/bash -l
  2. ユーザをHADB管理者に切り替える

    手順1.のコマンドを実行すると,HADBサーバ起動コンテナのシェルプロンプトが表示されます。この時点では,HADBサーバ起動コンテナ内のrootユーザでログインしている状態になるため,次のrunuserコマンドを実行して,ユーザをHADB管理者に切り替えてください。

    ■コマンドの実行例

    [root@hadb-server-5fd5cc7fb8-8jv58 /]# runuser adbmanager
    [adbmanager@hadb-server-5fd5cc7fb8-8jv58 /]$ cd
    [adbmanager@hadb-server-5fd5cc7fb8-8jv58 ~]$

    [説明]

    下線部分は,コンテナ内のシェルプロンプトです。表示内容は実行環境によって異なります。また,adbmanagerは,HADBサーバ起動コンテナ内のHADB管理者のユーザ名です。

  3. HADBのコマンドを実行する

    通常のLinuxと同じようにHADB管理者で各種コマンドを実行できます。各種コマンドの詳しい使い方については,HADB コマンドリファレンスの各章を参照してください。ただし,adbstopコマンドは実行しないでください。

    なお,adbimportコマンドを実行する場合に,必要な入力データファイルがコンテナの外部にあるときは,次のどちらかを実施してください。

    • コンテナ内からアクセス可能な場所に,入力データファイルを格納する

    • コンテナ内に入力データファイルをコピーする

    コンテナ内に入力データファイルをコピーする場合は,次のコマンドを実行してください。ホストOS上の入力データファイル(/root/import/data.csv)を,HADBサーバ起動コンテナ内のディレクトリ(/home/adbmanager/)にコピーできます。

    ■コマンドの実行例

    kubectl cp /root/import/data.csv hadb-server-5fd5cc7fb8-8jv58:/home/adbmanager/

    [説明]

    下線部分はPod名です。kubectl get podsコマンドで取得した,HADBサーバ起動コンテナが配置されているPod名を指定してください。

    メモ

    上記のコマンドでコピーしたファイルは,ファイルの所有者がコンテナ内のHADB管理者になっていません。HADBサーバ起動コンテナのシェルプロンプトを取得したあとに,chownコマンドを使用して,HADB管理者に所有者を変更してください。

  4. HADBサーバ起動コンテナのシェルを終了する

    コンテナ内のシェルプロンプトでexitを入力してください。runuserコマンドでユーザを切り替えている場合,exitを複数回実行してください。

    重要

    コンテナ内でadbstopコマンドを実行しないでください。adbstopコマンドを実行してHADBサーバを終了させると,HADBサーバ起動コンテナ自体も同時に停止してしまいます。なお,コンテナ内でadbstopコマンドを実行してしまった場合は,Deploymentブジェクトの定義のreplicas数に応じて,KubernetesがHADBサーバ起動コンテナを含むPodオブジェクトを再作成します。そのため,HADBサーバ起動コンテナを再度手動で作成したり,HADBサーバ起動コンテナを含むDeploymentオブジェクトを再作成したりする必要はありません。