9 インストールされる追加ツール
9.1 Copy to HadoopおよびOHSH
Copy to Hadoop
Copy to Hadoopを使用すると、データを特定してOracle Database表からApache Hadoop Distributed File System (HDFS)にデータをコピーし、そのデータでApache Hive外部表を作成することが簡単になります。HDFSでは、データはOracleデータ・ポンプ・ファイル内に保存されます(データをOracleデータ型として格納)。これにより、データ型の変換エラーが発生することなく、データベース内にデータの正確なコピーを持つことができます。その後、Hive (およびHiveを通してデータにアクセスするHadoopテクノロジ)とOracle Big Data SQLによって問い合せることができます。Oracleデータ・ポンプ・データは、Hiveを使用してParquetまたはORCに変換できます
Oracle Shell for Hadoop Loaders (OHSH)
OHSHは、HadoopとOracle Database間でデータを移動するための直感的なコマンドライン・ツールです。Oracle Database表からHive表への内容のコピーに使用できる一連の宣言型コマンドを提供します。
OHSHは、Oracle Big Data SQLとOracle Big Data Connectorsの両方にバンドルされています。Oracle Big Data SQLでは、OHSHはCopy to Hadoopと連携します。Oracle Big Data Connectorsでは、OHSHは、Oracle Loader for Hadoop (OLH)およびOracle SQL Connector for Hadoop Distributed File System (OSCH)を使用してHadoopおよびHiveからOracle表に内容をコピーするためのインタフェースを提供します。
OHSHは、OLH、OSCH、およびCopy to Hadoopのフロント・エンドとして機能しますが、OLHおよびOSCHはOracle Big Data Connectors製品の一部であり、Oracle Big Data SQLによってはインストールされません。
Copy to HadoopおよびOHSHのインストールと構成
Copy to HadoopおよびOHSHは、次のいずれの環境からでも使用できます。
-
Hadoopクラスタ・ノード
-
Oracle Databaseノード
-
エッジ・ノード。
Oracle Big Data SQLでは、Hadoopクラスタ管理サーバーと、Oracle Big Data SQLがインストールされている任意のOracle Databaseサーバー・ノードの両方にCopy to HadoopおよびOracle Shell for Hadoop Loaders用のキットがインストールされます。
また、両方のツールのキットをHadoopクラスタ管理サーバーからエッジ・ノードに手動でコピーし、エッジ・ノードからこれらを使用するために構成することもできます。キットは/opt/oracle/orahivedp-<version>
に格納されます。手順については、Hadoopクラスタ管理サーバー上の/opt/oracle/ohsh-<version>/doc/OHSH_EDGE_NODE_README.txt
を参照してください。
ノート:
Oracle Big Data SQLのインストールでは、次の表に示すCP2HADOOP_HOME
の設定以外、Copy to Hadoopは完全に自動化されています。これは手動で設定する必要があります。
Oracle Shell for Hadoop Loadersの構成は、この項で説明するとおり手動で完了する必要があります。
OHSHの環境変数
Hadoopクラスタ管理サーバーでは、OHSH構成ファイルは/opt/oracle/ohsh-<version>/bin/ohsh_config.sh
です。Oracle Databaseノードでは、$ORACLE_HOME/ohsh/bin/ohsh_config.sh
です。このファイルには、OHSHで必要な環境が含まれます。Hadoopクラスタ、Oracle Databaseノードまたはエッジ・ノード上のインストールで必要な変数セットは異なります。次の表は、各環境に設定する必要がある変数を示しています。必要な変数のいくつかは、Oracle Big Data SQLインストーラで自動的に設定されます。
9.1.1 Oracle DatabaseノードでのOHSH構成の完了
Oracle Big Data SQLのインストールでは、自動的にOHSHインストール・キットがOracle Big Data SQLがインストールされている各ノードにコピーされます。インストールを完了するには、手動でいくつかのステップを実行する必要があります。
ノート:
Oracle Big Data SQLがインストールされているHadoopクラスタ管理サーバー上にある$ORACLE_HOME/ohsh/doc/OHSH_DB_NODE_README.txt
のREADMEファイルに、Oracle DatabaseノードでOHSHを有効にするために必要な一連の完全なステップが記述されています。ただし、Oracle Big Data SQLによってOHSHがインストールされる際、一部の設定はインストーラによって実行されます。このコンテキストで構成を完了するには、READMEに記載されている完全な手順のかわりに、この省略版の手順を使用します。
-
Oracle Databaseサーバーに
oracle
ユーザーとしてログオンします。 -
Copy to Hadoopと連携するようにOHSHを設定します。
-
Oracle Databaseノード上のファイル・システム内にステージング・ディレクトリを作成します。
$ mkdir <OS_STAGE_DIR>
-
このステージング・ディレクトリ上にOracleディレクトリを作成し、Oracle Databaseユーザー(
oracle
など)に読取り/書込み権限を付与します。この例では、ORACLE_STAGE_DIRはOracle Database内のディレクトリ・オブジェクトの名前を指します。OS_STAGE_DIRはサーバー上のパスを指します。SQL> CREATE DIRECTORY <ORACLE_STAGE_DIR> AS '<OS_STAGE_DIR>'; SQL> GRANT READ,WRITE ON DIRECTORY <ORACLE_STAGE_DIR> TO <ORACLE_USER>;
ノート:
後で"stage"メソッドを使用してOracle表をコピーする場合は、OHSHのset locationdirectory
コマンドを使用してOracleディレクトリ・オブジェクト名(このステップの前に作成したディレクトリの名前)を指定します。 -
CDHベースのHadoopシステム(Oracle Big Data Applianceなど)に接続する場合は、次のサブステップを実行して、HDFSマウント可能FUSEディレクトリを介してHive表にファイルをコピーするOHSH "FUSE"メソッドを有効にします。HDPはFuseをサポートしないため、これらのステップを使用してHDP上のHDFSへのマウント・ポイントを作成することはできない点に注意してください。
-
Oracle Databaseホスト上で、Hadoopクラスタ上のHDFSシステムのrootへのFUSEマウントを作成します。FUSEのインストールについては、Clouderaのドキュメントを参照してください。最新の手順は、ClouderaのWebサイトの「Configuring Mountable HDFS」で見つかる可能性があります。
-
FUSEマウント上にOracleディレクトリを作成し、権限を付与します。この例では、ORACLE_FUSE_DIRはOracle Database内のディレクトリ・オブジェクトの名前を指します。OS_FUSE_MOUNTは、サーバー上のマウント・ポイントへのパスを指します。
SQL> CREATE DIRECTORY <ORACLE_FUSE_DIR> AS '<OS_FUSE_MOUNT>'; SQL> GRANT READ,WRITE ON DIRECTORY <ORACLE_FUSE_DIR> TO <ORACLE_USER>;
後でOHSHで、"FUSE"メソッドを使用してOracle表をHiveにコピーする場合は、OHSHの
set locationdirectory
コマンドを使用して同じ<ORACLE_FUSE_DIR>
を指すようにしてください -
-
-
依存関係のホーム・ディレクトリを構成するには、
$ORACLE_HOME/ohsh/bin/ohsh_config.sh
を編集します。OHSHがOracle Big Data SQLによってインストールされた場合は、必要な変数の大部分はすでに設定されています。次のように、HS2_HOST_PORT
および(必要であれば)HIVE_SESS_VAR_LIST
を設定します。export HS2_HOST_PORT=<HS2_HOST>:<HS2_PORT>
また、
HIVE_SESS_VAR_LIST
を任意の必要なHiveセッション変数に設定します。次に例を示します。-
Kerberos認証を使用してHiveServer2に接続する場合:
export HIVE_SESS_VAR_LIST="principal=<The server principal of HiveServer2>"
Hiveプリンシパルは構成プロパティ
hive-site.xml
内のhive.server2.authentication.kerberos.principal
で指定されます。 -
HTTPモードで稼働しているHiveServer2に接続する場合:
export HIVE_SESS_VAR_LIST="transportMode=http;httpPath=<The HTTP endpoint>"
-
SSLが有効なときにHiveServer2に接続する場合:
export HIVE_SESS_VAR_LIST="ssl=true;sslTrustStore=<Trust Store path>;trustStorePassword=<Trust Store password>"
-
-
Oracle Walletを使用するようにOHSH構成する場合は、環境変数
TNS_ADMIN
およびWALLET_LOCATION
をTNSおよびOracle Walletが格納されているディレクトリ・パスに設定します。export WALLET_LOCATION="<wallet_location>" export TNS_ADMIN="<tns_admin_location>"
ノート:
OHSHセッションを開始する際、
TNS_ADMIN
およびWALLET_LOCATION
がHadoopクラスタ上で異なる場合は、次のようにhadooptnsadmin
およびhadoopwalletlocation
を設定します。set hadooptnsadmin <tns_admin_hadoop_node> set hadoopwalletlocation <wallet_location_hadoop_node>
-
OHSHセッションを開始し、リソースをチェックします。このチェックにより、構成が正しいかどうか示されます。
$ ohsh ohsh> show resources
リソース
hadoop0
、hive0
、およびbash0
であることを確認してください。
9.1.2 Hadoopクラスタ上のOHSH構成の完了
Hadoopクラスタ管理サーバー上では、Oracle Big Data SQLはRPMから/opt/oracle/ohsh
にOHSHをインストールします。Hadoop側の構成を完了するには、root
として次のステップを実行します。
ノート:
Hadoopクラスタ管理サーバー上にある$ORACLE_HOME/ohsh/doc/OHSH_HADOOP_NODE_README.txt
のインストール手順には、Oracle Big Data SQLインストールのコンテキストでのCopy to HadoopおよびOHSHのインストールには関係がない余分な情報が含まれています。そのかわりに次の手順を使用してください。
-
HadoopシステムがOracle Big Data Applianceでない場合は、SQL*Plus Instant ClientとOracle Instant Client for LinuxをOracle Technology Networkからダウンロードします。Oracle Databaseのバージョンと一致するクライアント・バージョンを選択してください。
両方のパッケージを同じディレクトリ内に抽出します。
ディレクトリを
PATH
およびLD_LIBRARY_PATH
に追加します。 -
TNS用のローカル・ディレクトリを作成し、Oracle Databaseホスト上の
TNS_ADMIN
から、tnsnames.ora
およびsqlnet.ora
ファイルをこのディレクトリ内にコピーします。Oracle Databaseホスト用のOracle Walletを作成する場合は、データ・サーバーからOracle Walletファイルもコピーします。また、sqlnet.ora
が正しいOracle Walletの場所を指していることを確認します。WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=<your wallet directory>))) sqlnet.wallet_override=true
-
rootとして、
/opt/oracle/ohsh/bin/ohsh_config.sh
を編集します。次の環境変数を設定します。export CP2HADOOP_HOME=/opt/oracle/orahivedp-<version export HS2_HOST_PORT=<HiveServer2 hostname>:<Port number>
また、
HIVE_SESS_VAR_LIST
を任意の必要なHiveセッション変数に設定します。次に例を示します。-
Kerberos認証を使用してHiveServer2に接続する場合:
export HIVE_SESS_VAR_LIST="principal=<The server principal of HiveServer2>"
-
HTTPモードで稼働しているHiveServer2に接続する場合:
export HIVE_SESS_VAR_LIST="transportMode=http;httpPath=<The HTTP endpoint>"
-
SSLが有効なときにHiveServer2に接続する場合:
export HIVE_SESS_VAR_LIST="ssl=true;sslTrustStore=<Trust Store path>;trustStorePassword=<Trust Store password>"
-
-
さらに、TNSおよびOracle Walletが有効な場合は、次の変数をファイルに追加してエクスポートします。
export WALLET_LOCATION="<your wallet directory>" export TNS_ADMIN="<your TNS directory>"
-
PATH変数に
/opt/oracle/ohsh
および$HADOOP_HOME/bin
を追加しますPATH=/opt/oracle/ohsh-<version>/bin:$PATH PATH=$HADOOP_HOME/bin:$PATH
-
OHSHセッションを開始し、リソースをチェックします。このチェックにより、構成が正しいかどうか示されます。
$ ohsh ohsh> show resources
リソース
hadoop0
、hive0
、およびbash0
であることを確認してください。
9.1.3 Copy to HadoopおよびOHSHの使用の概要
OHSHロード・メソッドの実行例は、$ORACLE_HOME/ohsh/doc
および$ORACLE_HOME/ohsh/examples
を参照してください。
Copy to HadoopおよびOracle Shell for Hadoop Loadersの詳細は、「Oracle Big Data SQLユーザーズ・ガイド」を参照してください。
9.1.4 ジョブ監視を有効にするOHSHの構成
OHSHのジョブが実行されると、そのジョブに関するステータスとその他の情報がバックエンド・データベースに記録されます。OHSHのコマンドラインから情報にアクセスするには、まずデータベースへの接続を構成する必要があります。
構成ステップ
ジョブ履歴を格納するデータベース・インスタンスを有効にするには、conf/smartloader-conf.xml
内の次のプロパティを構成します。
-
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.driver
サポートされているバックエンド・データベース・タイプに対応するJDBCドライバを指定します。現在は、
MYSQL
とORACLE
が有効な値です。このプロパティが指定されていない場合、ジョブ履歴のコマンドは失敗します。
追加でプロパティを設定する必要があります。これらは、サポートされるバックエンド・データベースとして定義されているデータベース・タイプによって異なります。
-
jdc.driver
=ORACLE
の場合:-
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.oracleConnectId
tnsnames.ora
ファイルで定義されているTNSエントリ名。 -
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.oracleWalletDir
JDBCを介してOracle Databaseスキーマに接続するために使用するOracle Walletを含むOSディレクトリ。
-
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.oracleTnsDir
OHSHを実行しているノード上のディレクトリへのファイル・パス。このディレクトリには、
sqlnet.ora
やtnsnames.ora
などのSQL*Net構成ファイルが含まれています。通常、これは${ORACLE_HOME}/network/admin
です。ノート:
HadoopクライアントからOHSHを実行しており、Oracle Walletを使用する場合は、Hadoopクライアント上の任意のディレクトリにtnsnames.ora
およびウォレット・ファイルをコピーします。
-
-
jdbc.driver
=MYSQL
の場合:-
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.mysqlConnectUrl
MySQLデータベースへのJDBC接続の確立に使用するURL
-
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.mysqlUser
ジョブ履歴スキーマのMySQLユーザー
-
oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.mysqlPW
MySQLユーザー・アカウントのパスワード
-
OHSHジョブの監視のためのコマンド
この構成が完了すると、次のOHSHコマンドを実行できるようになります。
-
ohsh> show job <job_id>
IDで指定されたジョブの詳細が示されます。
-
ohsh> show job summary <job_id>
IDで指定された、完了したジョブのパフォーマンスが示されます。
-
ohsh> show job abstract <job_id>
ジョブの機能の説明が示されます。
-
ohsh> show jobs [failed|running|completed|finished] [extended] [<integer>]
特定のジョブ・ステータスの最後
n
個のジョブが示されます。-
最初のパラメータは、ジョブ・ステータスを指定します。ステータスが指定されていない場合は、ジョブ・ステータスに関係なく、すべてのジョブが示されます。
-
2番目のパラメータは、詳細を表示するかどうかを指定します。
-
3番目のパラメータは、指定されたステータスの最後
n
個のジョブを示すことを指定します。n
が指定されていない場合は、そのステータスのすべてのジョブが示されます。
-
-
ohsh> truncate jobs [<integer>]
データベースから最後
n
個のジョブが削除されます。整数が指定されていない場合、このコマンドではすべてのジョブが削除されます。
9.2 Oracle SQL Access to Kafka
Apache KafkaクラスタおよびOracle Databaseを使用して作業する場合、Oracle SQL Access to Kafka (OSAK)を使用すると、Oracle SQLを介してKafkaブローカにアクセスできます。その後、Kafkaレコードのデータを問い合せ、KafkaデータをOracle Database表のデータと結合することもできます。
OSAKはオプションです。OSAKキットは、Oracle Big Data SQLのデータベース側インストーラbds-database-install.sh
を実行すると、Oracle Databaseシステムにコピーされます。OSAKを使用する場合、Oracle Access to Kafkaのインストールおよび構成の説明に従って設定を完了します