9 Oracle Big Data Manager bdm-cliユーティリティの使用

bdm-cli (Oracle Big Data Managerコマンド・ライン・インタフェース)ユーティリティは、コマンド・ラインでのデータのコピーおよびコピー・ジョブの管理に使用します。

bdm-cliのいくつかのコマンドはodcpのコマンドと重複していますが、bdm-cliにはコピー・ジョブのスケジューリングと管理などの管理タスク用の追加コマンドも含まれています。

bdm-cliのダウンロードとインストールは、クラスタのノードまたはリモート・オペレーティング・システムのどちらかで手動で実行する必要があります。クラスタにインストールする場合は、クラスタへの接続にSSHを使用する必要があります。リモート・システムにインストールする場合は、SSHを使用せずにコマンドを実行できます。「bdm-cliユーティリティのインストール」を参照してください。

クラスタの外部にインストールした場合でも、bdm-cliの使用について特別な要件はありません。

9.1 bdm-cliユーティリティのインストール

bdm-cli (Big Data Command Line Interface)は、データのコピーおよびコピー・ジョブの管理のためのコマンド・ライン・ユーティリティです。bdm-cliは、GitHubからダウンロードしてインストールできます。リモート・オペレーティング・システムにインストールすることもできるため、クラスタへの接続にSSHを使用する必要はありません。

bdm-cliをインストールするには:

  1. プロキシ・サーバーを使用する場合は、最初に次のコールを実行します。

    export http_proxy="your_proxy_server" 
    export https_proxy="your_proxy_server"
  2. その後で次のコールを実行します。

    curl -L https://github.com/jazeman/bdm-python-cli/blob/1.0/install-rpm?raw=true | bash

9.2 使用方法

コマンド・ラインでbdm-cliを使用すると、コピー・ジョブを作成および管理できます。

構文

bdm-cli [global_options] subcommand [options][arguments]...

サポートされている記憶域のプロトコルおよびパス

bdm-cliでサポートされているプロトコルおよびファイル・システムへのパスは次のとおりです。

  • HDFS:

    hdfs:///

  • Oracle Cloud Infrastructure Object Storage Classic (旧称Oracle Storage Cloud Service):

    swift://container.provider/

  • Oracle Cloud Infrastructure Object Storage (旧称Oracle Bare Metal Cloud Object Storage Service):

    oss:///container

    Oracle Cloud Infrastructure Object Storageでの操作の場合、src-providerオプションとdst-providerオプションを使用してプロバイダを指定する必要があります。たとえば、Oracle Cloud Infrastructure Object Storageで使用するときに、これらのオプションをbdm-cli create_jobに使用します。

ジョブのUUIDの検索

いくつかのbdm-cliサブコマンドでは、Universally Unique Identifier (UUID)でジョブを識別する必要があります。UUIDを検索するには、bdm-cli list_all_jobsを実行します。

ソースと宛先のパスの指定

ソースおよび宛先を指定する場合は、パスを完全修飾します。

  • source ...

    プロトコルと完全パスで修飾されたファイル名。例: hdfs:///user/oracle/test.raw

  • destination

    プロトコルと完全パスで修飾されたディレクトリ名。例: swift://container.storagename/test-dir

環境変数の設定

一部のbdm-cliのオプションは、環境変数として設定できます。たとえば、Oracle Big Data ManagerのURLとユーザー・パスワード・ファイルは次のように設定できます。
export BDM_URL=https://hostname:8888/bdcs/api && export BDM_PASSWORD=/tmp/password_file

環境変数として設定できるすべてのbdm-cliのオプションについては、次の項で説明します。

ヘルプの表示

bdm-cliの使用方法に関するヘルプを表示するには:
bdm-cli --help
特定のコマンドの使用方法に関するヘルプを表示するには:
bdm-cli command --help
例:
bdm-cli edit_job_template --help

9.3 オプション

すべてのbdm-cliコマンドで使用可能なオプションは、次のとおりです。

オプション 説明
--bdm-passwd path_to_password_file

Oracle Big Data Managerユーザー・パスワード・ファイルへのパス。

環境変数: BDM_PASSWORD

--bdm-url bdm_url

Oracle Big Data ManagerサーバーのURL。

環境変数: BDM_URL

--bdm-username username

Oracle Big Data Managerサーバーのユーザー名。

デフォルト値: oracle

環境変数: BDM_USERNAME

-f [table|csv|json] 出力形式の指定:
  • table (デフォルト)

    各フィールドは、個別の列で表示されます。

  • csv

    各レコードは、単一行でカンマ区切りリストとして表示されます。

  • json:

    出力は、JavaScript Object Notation (JSON)形式で表示されます。

--fields fields

オブジェクトのタイプに応じて、カンマ区切りのフィールドを指定します。

-h

--help

このメッセージを表示して終了します。

--no-check-certificate

サーバーの証明書を検証しません。

--proxy proxy

プロキシ・サーバー。

--tenant-name tenant_name

テナントの名前。

デフォルト値: admin

-v

RESTリクエスト本文を出力します。

--version Oracle Big Data Managerのバージョンを表示して終了します。

9.4 サブコマンド

次の表に、bdm-cliのサブコマンドの概要を示します。それぞれの詳細は、コマンドの名前をクリックしてください。

コマンド 説明
bdm-cli abort_job 実行中のジョブを中断します。
bdm-cli copy ソースから宛先へのコピー・ジョブを実行します。
bdm-cli create_job 既存のテンプレートから新規ジョブを実行します。
bdm-cli create_job_template 新しいジョブ・テンプレートを作成します。
bdm-cli get_data_source 名前でデータ・ソースを検索します。
bdm-cli get_job UUIDでジョブを取得します。
bdm-cli get_job_log ジョブのログを取得します。
bdm-cli list_all_jobs 実行履歴からすべてのジョブをリストします。
bdm-cli list_template_executions 特定のテンプレートの実行履歴からすべてのジョブをリストします。
bdm-cli ls 特定の場所からファイルをリストします。

9.5 bdm-cli abort_job

実行中のジョブを中断します。

構文

bdm-cli abort_job [options] job_uuid

オプション

オプション 説明

--force

ジョブを強制中断します。

-h

--help

このメッセージを表示して終了します。

ジョブを中断します。

/usr/bin/bdm-cli -f json --no-check-certificate --bdm-url ${DATA_HOST}:8888/bdcs/api --bdm-username ${DATA_USER} --bdm-passwd ${USER_PASSWORD_FILE} abort_job 24ef30e8-913b-4402-baf8-74b99c211f50

9.6 bdm-cli copy

ソースから宛先へのコピー・ジョブを実行します。

構文

bdm-cli copy [options] source... destination

オプション

オプション 説明

block-size block_size

ブロック・サイズをバイト単位で指定します。

--description description

データ・ソースの説明。

--driver-memory-size driver_memory_size

Oracle Storage Cloud Serviceドライバの最大メモリー量を指定します。

--dst-provider oss_destination_provider

宛先のプロバイダを指定します(Oracle Cloud Infrastructure Object Storage Classicの宛先を使用する場合)。

-h

--help

このメッセージを表示して終了します。

--memory-size-per-node memory_size_per_node

Sparkエグゼキュータのノードごとのメモリー制限をGB単位で指定します(例: 40GB)。

--number-of-executor-nodesnumber_of_executors_per_node

ノードごとのSparkエグゼキュータの最大数を指定します(例: 10GB)。

--number-of-threads—per-nodenumber_of_threads_per_node

ノードごとの最大スレッド数を指定します。

part-size part_size

パート・サイズをバイト単位で指定します。

--recursive

--no-recursive

再帰的コピー(デフォルトで有効)。

--retry

--no-retry

障害が発生した場合に、データの転送を再試行します。

--src-provider oss_source_provider

ソースのプロバイダを指定します(Oracle Cloud Infrastructure Object Storage Classicの使用時)。

--sync

--no-sync

ソースと宛先を同期します。

HDFSからOracle Storage Cloud Serviceへのファイルのコピー:

/usr/bin/bdm-cli  -f json  --no-check-certificate  --bdm-url ${DATA_HOST}:8888/bdcs/api --bdm-username ${DATA_USER} --bdm-passwd ${USER_PASSWORD_FILE}   copy hdfs:///user/${DATA_USER}/1MFile.raw oss:///${DATA_USER} --dst-provider ${OSS_PROVIDER}

9.7 bdm-cli create_job

既存のテンプレートから新規ジョブを実行します。

構文

bdm-cli create_job [options] job_template_name

オプション

オプション 説明

--run-now

ジョブのスケジュールが設定されている場合、すぐにジョブを実行します。それ以外の場合は無視されます。

--source source

ソース・ファイル。次に例を示します。

hdfs:///user/oracle/test.raw

--destination destination

宛先ディレクトリ。たとえば、swift://container.storagename/test-dir

--driver-memory-size driver_memory_size

Oracle Storage Cloud Serviceドライバの最大のメモリー量を指定します。

--memory-size-per-node memory_size_per_node

Sparkエグゼキュータのノードごとのメモリー制限をGB単位で指定します(例: 40G)。

--number-of-executor-nodes number_of_executors_per_node

ノードごとのSparkエグゼキュータの最大数を指定します(例: 10G)。

--number-of-threads-per-node number_of_threads_per_node

ノードごとの最大スレッド数を指定します。

--block-size block_size

ブロック・サイズをバイト単位で指定します。

--part-size part_size

パート・サイズをバイト単位で指定します。

--retry

--no-retry

障害が発生した場合に、データの転送を再試行します。

--sync

--no-sync

ソースと宛先を同期します。

--recursive

--no-recursive

再帰的コピー(デフォルトで有効)。

--job-executable-class job_executable_class

Sparkジョブの実行に使用されるJavaのメイン・クラス。

--src-provider oss_source_provider

ソースのプロバイダを指定します(Oracle Cloud Infrastructure Object Storage Classicのソースを使用する場合)。

--dst-provider oss_destination_provider

宛先プロバイダを指定します(Oracle Cloud Infrastructure Object Storage Classicの宛先を使用する場合)。

-h

--help

このメッセージを表示して終了します。

9.8 bdm-cli create_job_template

新しいジョブ・テンプレートを作成します。

構文

bdm-cli create_job_template [options] job_template_name source ... destination

オプション

オプション 説明

--abort-running-job

--no-abort-running-job

次回にスケジュールされた実行が開始された場合、すでに実行中の処理を中断します。

--block-size block_size

バイト単位でブロック・サイズを指定します。

--data-source-name data_source_name

ジョブのデータ・ソース名。

--description description

ジョブ・テンプレートの説明。

--dst-provider destination_provider

oss:///の宛先に対して指定します。

--environment environment

JSON形式の環境:

{"envName1": "envValue2", "envName2": "envValue2"}

-h

--help

このメッセージを表示して終了します。

--history-size history_size

実行履歴ログのカウント。

--job-executable-class job_executable_class

Sparkジョブの実行に使用されるJavaのメイン・クラス。

--job-schedule job_schedule

cronのようにジョブ・スケジュールを指定します。次に例を示します。

"0 56 8 * * ?"は、毎日UTC時刻の08時56分に実行することを意味します。

--job-template-type job_template_type

ジョブ・テンプレートのタイプを指定します。使用可能な値は次のとおりです。

  • DATA_MOVEMENT_COPY

  • GENERAL

--libraries libraries

Hadoopライブラリ(例: OdcpLibraries)。

このオプションは、複数の値を持つことができます。次に例を示します。

--libraries OdcpLibraries --libraries OdcpLibraries

--memory-size-per-node memory_size_per_node

Sparkエグゼキュータのノードごとのメモリー制限をGB単位で指定します(例: 40G)。

--number-of-executor-nodes number_of_executor_per_node

ノードごとのSparkエグゼキュータの最大数を指定します(例: 10G)。

--number-of-threads-per-node number_of_threads_per_node

ノードごとの最大スレッド数を指定します。

--part-size part_size

バイト単位でパート・サイズを指定します。

--recursive

--no-recursive

再帰的コピー(デフォルトで有効)。

--retry

--no-retry

障害が発生した場合に、データの転送を再試行します。

--src-provider oss_source_provider

ソースのプロバイダを指定します(Oracle Bare Metal Cloud Object Storage Serviceの使用時)。

--sync

--no-sync

ソースと宛先を同期します。

--tags tags

ユーザー定義のタグ。このオプションは、複数の値を持つことができます。次に例を示します。

--tags system --tags datamovement --tags copy

9.9 bdm-cli get_data_source

名前でデータ・ソースを検索します。

構文

bdm-cli get_data_source [options] data_source_name

オプション

オプション 説明

-h

--help

このメッセージを表示して終了します。

9.10 bdm-cli get_job

UUIDでジョブを取得します。

構文

bdm-cli get_job [options] job_uuid

オプション

オプション 説明

-h

--help

このメッセージを表示して終了します。

ジョブに関する情報を取得します。

/usr/bin/bdm-cli  -f json  --no-check-certificate  --bdm-url ${DATA_HOST}:8888/bdcs/api --bdm-username ${DATA_USER} --bdm-passwd ${USER_PASSWORD_FILE}   get_job ${JOB_UUID}

9.11 bdm-cli get_job_log

ジョブのログを取得します。

構文

bdm-cli get_job_log [options] job_uuid

オプション

オプション 説明

-h

--help

このメッセージを表示して終了します。

9.12 bdm-cli list_all_jobs

実行履歴からすべてのジョブをリストします。

構文

bdm-cli list_all_jobs [options]

オプション

オプション 説明

-h

--help

このメッセージを表示して終了します。

--limit limit

ページのサイズを指定します。

--offset offset

ページング・オフセットを指定します。

すべてのジョブをリストします。

/usr/bin/bdm-cli  -f json  --no-check-certificate  --bdm-url ${DATA_HOST}:8888/bdcs/api --bdm-username ${DATA_USER} --bdm-passwd ${USER_PASSWORD_FILE}   list_all_jobs

結果を制限するには、--offsetオプションと--limitオプションを使用します。たとえば、ページ当たり20行で8番目のページを取得するには、次のようにします。

bdm-cli list_all_jobs --offset 8 --limit 20

9.13 bdm-cli list_template_executions

特定のテンプレートの実行履歴からすべてのジョブをリストします。

構文

bdm-cli list_template_executions  [options] job_uuid

オプション

オプション 説明

-h

--help

このメッセージを表示して終了します。

9.14 bdm-cli ls

特定の場所からファイルをリストします。

構文

bdm-cli ls [options] path_1 ... path_n

オプション

オプション 説明

-h

-–human-readable

人間が解釈できるファイル・サイズ。

-d

--dirs-only

ディレクトリのみがリストされます。

--provider oss_provider

Oracle Bare Metal Cloud Object Storage Serviceのパスを指定します。

-h

--help

このメッセージを表示して終了します。

選択したユーザーの下にあるHDFSコンテンツをリストします。

/usr/bin/bdm-cli  -f json  --no-check-certificate  --bdm-url ${DATA_HOST}:8888/bdcs/api --bdm-username ${DATA_USER} --bdm-passwd ${USER_PASSWORD_FILE}   ls hdfs:///user/${DATA_USER}/integration_in --provider hdfs

選択したユーザーの下にあるOracle Cloud Infrastructure Object Storage Classicのコンテンツをリストします。

/usr/bin/bdm-cli  -f json  --no-check-certificate  --bdm-url ${DATA_HOST}:8888/bdcs/api --bdm-username test20170324113533 --bdm-passwd ${USER_PASSWORD_FILE}    ls oss:///${OSS_CONTAINER}/ --provider ${OSS_PROVIDER}