主コンテンツへ
Oracle® Big Data SQLインストレーション・ガイド
リリース3.2.1
E92090-05
目次へ移動
目次
索引へ移動
索引

前
次

8 インストールされる追加ツール

8.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インストーラで自動的に設定されます。

8.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に記載されている完全な手順のかわりに、この省略版の手順を使用します。

また、以下でパッチ23237037は12.1.0.2 (またはそれ以前のOracle Databaseリリース)のみに必要である点に注意してください。それより後でリリースされたOracle Databaseを稼働している場合は、このパッチはインストールしないでください。

  1. Oracle Databaseサーバーにoracleユーザーとしてログオンします。

  2. Copy to Hadoopと連携するようにOHSHを設定します。

    1. Oracle Databaseノード上のファイル・システム内にステージング・ディレクトリを作成します。

      $ mkdir <OS_STAGE_DIR>
    2. このステージング・ディレクトリ上に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ディレクトリ・オブジェクト名(この手順の前に作成したディレクトリの名前)を指定します。
    3. CDHベースのHadoopシステム(Oracle Big Data Applianceなど)に接続する場合は、次のサブステップを実行して、HDFSマウント可能FUSEディレクトリを介してHive表にファイルをコピーするOHSH "FUSE"メソッドを有効にします。HDPはFuseをサポートしないため、これらの手順を使用してHDP上のHDFSへのマウント・ポイントを作成することはできない点に注意してください。

      1. Oracle Database 12.1.0.2以上を使用している場合は、すべてのデータベース・ノード上にパッチ23237037 (My Oracle Supportで入手可能)をインストールします。

      2. Oracle Databaseホスト上で、Hadoopクラスタ上のHDFSシステムのrootへのFUSEマウントを作成します。FUSEのインストールについては、Clouderaのドキュメントを参照してください。最新の手順は、ClouderaのWebサイトの「Configuring Mountable HDFS」で見つかる可能性があります。

      3. 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>を指すようにしてください

  3. 依存関係のホーム・ディレクトリを構成するには、$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>"

  4. 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>
  5. OHSHセッションを開始し、リソースをチェックします。このチェックにより、構成が正しいかどうか示されます。

    $ ohsh
    ohsh> show resources

    リソースhadoop0hive0、およびbash0であることを確認してください。

8.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のインストールには関係がない余分な情報が含まれています。そのかわりに次の手順を使用してください。
  1. HadoopシステムがOracle Big Data Applianceでない場合は、SQL*Plus Instant ClientとOracle Instant Client for LinuxをOracle Technology Networkからダウンロードします。Oracle Databaseのバージョンと一致するクライアント・バージョンを選択してください。

    たとえば、Oracle Database 12.2.0.1.0のクライアントは、このアドレスhttp://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.htmlでダウンロードできます。

    両方のパッケージを同じディレクトリ内に抽出します。

    ディレクトリをPATHおよびLD_LIBRARY_PATHに追加します。

  2. 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
  3. 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>"

  4. さらに、TNSおよびOracle Walletが有効な場合は、次の変数をファイルに追加してエクスポートします。

    export WALLET_LOCATION="<your wallet directory>"
    export TNS_ADMIN="<your TNS directory>"
  5. PATH変数に/opt/oracle/ohshおよび$HADOOP_HOME/binを追加します

    PATH=/opt/oracle/ohsh-<version>/bin:$PATH
    PATH=$HADOOP_HOME/bin:$PATH 
  6. OHSHセッションを開始し、リソースをチェックします。このチェックにより、構成が正しいかどうか示されます。

    $ ohsh
    ohsh> show resources

    リソースhadoop0hive0、およびbash0であることを確認してください。

8.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ユーザーズ・ガイド」を参照してください。