プライマリ・コンテンツに移動
Oracle® Big Data Connectorsユーザーズ・ガイド
リリース5 (5.0)
F21918-01
目次へ移動
目次
索引へ移動
索引

前
次

4 Oracle Big Data Connectorsの利便性向上ツール

Oracle Big Data Connectorsは、HadoopとOracle Databaseの間でデータを交換するための強力なツールセットです。Oracle Shell for Hadoop Loadersは、Oracle Big Data Connectorsを簡単に使用できるようにするためのツールです。

4.1 Oracle Shell for Hadoop Loadersの概要

Oracle Shell for Hadoop Loadersとは

Oracle Shell for Hadoop Loaders (OHSH)は、Oracle Loader for Apache Hadoop、Oracle SQL Connector for HDFSおよびCopy to Hadoopへの簡単に使用できるコマンドライン・インタフェースを提供するヘルパー・シェルです。 コマンドライン・リコール、履歴、親プロセスからの環境変数の継承、新規または既存の環境変数の設定およびコマンドラインでの環境切り替えの実行など、基本的なシェル機能を備えています。  

Oracle Shell for Hadoop Loadersのコア機能には次のようなものがあります。

  • Oracle Shell for Hadoop Loadersがロード・タスクを実行するために使用する、名前付きの外部リソースの定義。

  • ロード操作のデフォルト値の設定。

  • ロードコマンドの実行。

  • ロード前後の簡単なタスクの、オペレーティング・システム、HDFS、HiveおよびOracleへの委任。 これらのタスクには、ロードするデータの表示およびロード後のターゲット表のデータの表示も含まれます。

関連項目:

OHSHキットのサンプルディレクトリには、Oracle Shell for Hadoop Loadersを使用してリソースを定義しデータをロードする多くの例が含まれています。OHSHのロード方式を実行する方法の例および手順の詳細は、<OHSH_KIT>/examples.zipを解凍して<OHSH_KIT>/examples/README.txtを参照してください。

4.1.1 Oracle Shell for Hadoop Loadersインタフェース(OHSH)の構成

OHSHインストールの場所を確認して、OHSH_HOMEを設定します。次に例を示します。

  1. OHSH_HOMEを設定します。
    $ export OHSH_HOME=/opt/oracle/ohsh-5.0.0 
  2. $OHSH_HOME/bin/ohsh_config.shを編集して、次の環境変数を設定します。
    1. OLH_HOME: Oracle Loader for Hadoopのインストール場所。次に例を示します。
      export OLH_HOME=/opt/oracle/oraloader-5.0.0-h2
    2. HS2_HOST_PORT: Hiveserver 2サーバーおよびポート情報。次に例を示します。
      export HS2_HOST_PORT = <server>:<port> 
    3. HADOOP_CONF_DIR: Hadoop構成ディレクトリ。次に例を示します。
      export HADOOP_CONF_DIR=/etc/hadoop/conf 
    4. HIVE_CONF_DIR: Hive構成ディレクトリ。次に例を示します。
      export HIVE_CONF_DIR=/etc/hive/conf 
    5. TNS_ADMIN: Oracle Databaseを識別するには、次のようにします。
      • SSLやOracle Walletのかわりに標準JDBC接続を使用している場合、tnsnames.oraおよびsqlnet.oraをデータベース・ホストの$TNS_ADMINからOHSHを実行する予定のシステムの<directory_location>にコピーする必要があります。
        export TNS_ADMIN=<directory_location>
      • Oracle Walletを使用してデータベース資格証明を格納している場合は、データベース・ホストにウォレット・ファイルを作成し、OHSHを実行する予定のシステムの<wallet_location>にこれをコピーします。TNS_ADMINに加えて、WALLET_LOCATION_DIRをウォレット・ファイルの場所に設定します。
        export WALLET_LOCATION=<wallet_location>

        注意:

        sqlnet.oraでウォレットが有効化されており、正しいウォレットの場所を指定していることを確認してください。次に例を示します。
        WALLET_LOCATION=     
        (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=<wallet_location>)))  
        sqlnet.wallet_override=true
      • SSLを使用する場合、TNS_ADMINはSSLクライアント・ウォレット・ファイルが存在するディレクトリです。次に例を示します。
        export TNS_ADMIN=/home/oracle/SSL_wallet
    6. SQLCLIENT_HOME: データベース・クライアントのインストール・ディレクトリ。次に例を示します。
      export SQLCLIENT_HOME=/usr/lib/oracle/12.1/client64 
    7. 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>"
  3. $PATH変数に$OHSH_HOME/bin/ohshを追加します。
    $ export PATH=$PATH:$OHSH_HOME/bin/ohsh

4.1.2 Oracle Shell for Hadoop Loadersを使用する前に

OHSH対話型セッションの開始

対話型セッションを開始するには、コマンドラインでohshを入力します。これにより、OHSHシェルに移動します(パスにOHSHが含まれている場合)。

$ ohsh
ohsh>

このシェルでOHSHコマンドを実行できます(OHSH構文を使用)。Beeline/Hive、Hadoop、BashおよびSQL*Plusのコマンドを実行することもできます。非OHSHコマンドの場合は、コマンドの実行に使用するリソースの名前に委任演算子の接頭辞(%)を追加します。次に例を示します。

ohsh> %bash0 ls —l

OHSHのスクリプト記述

CLIで機能するのと同じコマンドをスクリプト記述することもできます。ohshコマンドには、スクリプトで使用するための3つのパラメータが用意されています。

  • ohsh —i <filename>.ohsh

    -iパラメータは、プロンプトが表示される前に、OHSHに、スクリプト内のコマンドを使用して対話型セッションを初期化するように指示します。これは、シェル内で作業を開始する前に、必要なセッション・リソースを設定し、他の準備タスクを自動化するための便利な方法です。

    $ ohsh –i initresources.ohsh
  • ohsh —f <filename>.ohsh

    -fパラメータを指定してohshコマンドを実行すると、非対話型セッションが開始され、スクリプト内のコマンドが実行されます。

    $ ohsh –f myunattendedjobs.ohsh
  • ohsh —i —f <filename>.ohsh

    -i-fを一緒に使用することで、非対話型セッションを初期化してからセッションで別のスクリプトを実行できます。

    $ ohsh -i mysetup.ohsh –f myunattendedjobs.ohsh
  • ohsh —c

    このコマンドは、OHSHセッションが起動時に継承するすべてのHadoop構成プロパティをダンプします。

OHSHリソースの使用

リソースは、OHSHがやり取りする名前付きエンティティです。例: Hadoopクラスタはリソースであり、Oracleデータベース、Hiveデータベース、OracleデータベースとのSQLセッション、およびローカルOSでのBashシェルへのJDBC接続と同様です。

OHSHは、起動時にhive0 (デフォルトHiveデータベースに接続するため)およびhadoop0という2つのデフォルト・リソースを提供します。

  • hive0リソースを使用して次のHiveコマンドを実行します。

    ohsh> %hive0 show tables

    他のHiveデータベースに接続するためにHiveリソースを追加作成できます。

  • hadoop0リソースを使用して次のHadoopコマンドを実行します。

    ohsh> %hadoop0 fs -ls

対話型またはスクリプト化セッション内で、SSL、SQLやJDBCなどの追加リソースのインスタンスを作成できます。OHSHを介してOracle Databaseに接続するには、次の3つのリソースを作成する必要があります。

  • SQLリソースの作成:
    ohsh> create sqlplus resource sql0 connectid=”bigdatalite.localdomain:1521/orcl”

    注意:

    プロンプトで、データベースのユーザー名とパスワードを入力します。
  • JDBCリソースの作成:
    ohsh> create jdbc resource jdbc0 connectid=<database connection URL>

    注意:

    プロンプトで、データベースのユーザー名とパスワードを入力します。
  • リソースの表示:
    ohsh> show resources

このコマンドは、デフォルトのリソース、およびセッション内で作成された追加リソースを示します。

Oracle Databaseの接続のためのJDBC SSLによるリソースの作成

SSLを介してOracle Databaseに接続するには、次のリソースを作成する必要があります。

  • SSLソースの作成。SSLクライアント・ウォレットをダウンロードして構成ステップを完了するには、「JDBC SSLの使用」を参照してください。
  • SQLリソースの作成:
    ohsh> create sqlplus resource sql_ssl connectid="<tns entry name for the SSL connection>"
    次に例を示します。
    ohsh> create sqlplus resource sql_ssl connectid="inst1_ssl"

    inst1_sslは、JDBC SSL接続のTNSエントリです

    注意:

    プロンプトで、データベースのユーザー名とパスワードを入力します。
  • JDBCリソースの作成:
    ohsh> create jdbc resource jdbc_ssl 
    connectiondir=<SSL wallet directory location>
    connectid="<tns entry name for the SSL connection>"
    次に例を示します。
    ohsh> create jdbc resource ora_mydatabase_cs 
    connectiondir=/home/oracle/ssl_client_wallet 
    connectid="inst1_ssl"

    inst1_sslは、JDBC SSL接続のTNSエントリです

    注意:

    プロンプトで、データベースのユーザー名とパスワードを入力します。

セキュアなJavaキーストアを使用したリソースの作成

パスワードは、セキュアなJavaキーストアに格納できます。Javaキーストアを使用している場合、ユーザー名とパスワードの入力を求められることはありません。また、データをロードするために開発するスクリプトにこれを追加することもできます。

  • Javaキーストアの作成「セキュアな外部JavaキーストアおよびHadoop資格証明コマンドの使用」を参照してください
  • Javaキーストアを使用したSQLリソースの作成:
    ohsh> create sqlplus resource sql_ssl_cs user=<username>
    passwordalias=<password alias>  
    provider="<provider_path>"
    connectid="<tns entry name for the SSL connection>"
    次に例を示します。
    ohsh> create sqlplus resource sql_ssl_cs user=oracle 
    passwordalias=oracle_passwd
    provider="jceks://file/home/oracle/passwd.jceks"
    connectid="inst1"
  • JDBC SSL接続でJavaキーストアを使用したSQLリソースの作成:
    ohsh> create sqlplus resource sql_ssl_cs user=<username> 
    passwordalias=<password alias>  
    provider="<provider_path>"
    connectiondir=<SSL wallet directory location> 
    connectid="<tns entry name for the SSL connection>
    次に例を示します。
    ohsh> create sqlplus resource sql_ssl_cs user=oracle 
    passwordalias=oracle_passwd
    provider="jceks://file/home/oracle/passwd.jceks"
    connectiondir=/home/oracle/ssl_client_wallet
    connectid="inst1_ssl"
  • Javaキーストアを使用したJDBCリソースの作成:
    ohsh> create jdbc resource jdbc_ssl_cs user=<username>     
    passwordalias=<password alias>    
    provider="<provider_path>" 
    connectid="<tns entry name for the SSL connection>"
    次に例を示します。
    ohsh> create jdbc resource jdbc_ssl_cs user=oracle 
    passwordalias=oracle_passwd
    provider="jceks://file/home/oracle/passwd.jceks"
    connectid="inst1"
  • JDBC SSL接続でJavaキーストアを使用したJDBCリソースの作成:
    ohsh> create jdbc resource jdbc_ssl_cs user=<username>     
    passwordalias=<password alias>    
    provider="<provider_path>" 
    connectiondir=<SSL wallet directory location> 
    connectid="<tns entry name for the SSL connection>"
    次に例を示します。
    ohsh> create jdbc resource jdbc_ssl_cs user=oracle 
    passwordalias=oracle_passwd
    provider="jceks://file/home/oracle/passwd.jceks"
    connectiondir=/home/oracle/ssl_client_wallet 
    connectid="inst1_ssl"

ヘルプの表示

OHSHシェルでは、すべてのコマンドに対するオンライン・ヘルプが用意されています。

すべてのOHSHコマンドのリストを表示するには、次のコマンドを実行します。

ohsh> help

特定のコマンドのヘルプを表示するには、helpと入力し、続けて次のコマンドを入力します。    

ohsh> help show

次の表に、使用可能なヘルプ・カテゴリを示します。

helpコマンド 説明
help load OracleおよびHadoopの表に対するloadコマンドを示します。
help set ロード操作のデフォルト値を設定するためのヘルプを表示します。また、特定の設定により影響を受けるロード・メソッドも示します。
help show デフォルト設定を調査するためのヘルプを表示します。
help shell シェルライクなコマンドを表示します。
help resource 指定リソースを作成および削除するためのコマンドを表示します。

4.2 Oracle SQL DeveloperとOracle Big Data Connectorsの併用

Oracle SQL Developerは、本質的にはグラフィカル・バージョンのSQL*Plusです。特に、HadoopとOracle Database間でデータを移動するためのツールに対するわかりやすいインタフェースが特長です。これには、Copy to Hadoop、Oracle Loader for HadoopおよびOracle SQL Connector for Hadoop Distributed File System (Oracle Big Data SQLも同様)のサポートが含まれます。インタフェースには、これらすべてのツールの使用を支援するウィザードがあります。

次のステップに従って、Oracle Big Data Connectorsと連携するようにOracle SQL Developerを設定します。

  1. Oracle SQL Developerをダウンロードしてインストールします。

  2. Hive JDBCドライバをダウンロードします。

  3. 新しいHive JDBCドライバをOracle SQL Developerに追加します。

  4. Oracle Big Data Connectorsに必要な環境変数を設定します。

  5. 必要な接続を設定します。

ドライバをインストールし、環境を構成して、Oracle DatabaseとHadoop間の接続を作成したら、Oracle SQL Developer内からOracle Big Data Connectorsの使用を開始できます。

Oracle SQL Developerのダウンロードおよびインストール

SQL Developerをインストールします。リリース4.2以降では、Copy To Hadoop機能がサポートされています。

インストールは簡単です。パッケージをダウンロードして抽出するのみです。

  1. Oracle Technology Network (OTN)のOracle SQL Developerダウンロード・サイトに移動します。

  2. ライセンス契約を受け入れ、プラットフォームにとって適切なバージョンをダウンロードします。

  3. ダウンロードしたZIPファイルをローカル・ドライブに抽出します。

    抽出先のフォルダ名は任意です。

インストールと構成の詳細は、『Oracle SQL Developerユーザーズ・ガイド』SQL Developerのインストールおよび開始に関する項を参照してください。

Cloudera Enterprise用のHive JDBCドライバのダウンロードおよびインストール

Oracle SQL DeveloperをHadoop環境のHiveに接続するには、Cloudera Enterprise用のHive JDBCドライバをダウンロードしてインストールする必要があります。これらのドライバは、Oracle SQL Developerのダウンロード・パッケージには付属していません。

HDPユーザーに対する注意:

現時点で、SQL Developer 4.2には、Hive用のCloudera JDBCドライバが必要です。ただし、これらのドライバは、Hortonworksクラスタに対しても動作するように見えます。HDPユーザーは、これらのドライバがその要件に適合するかどうかを判別するためにテストを行う必要があります。
  1. 最新のHive用Cloudera JDBCドライバをCloudera Webサイトから任意のローカル・ディレクトリにダウンロードします。

    Cloudera Webサイトで「cloudera hive jdbc drivers download」を検索し、使用可能なドライバ・パッケージの場所を特定します。

    ドライバ・バージョン、OSおよびOSバージョン(32/64ビット)を選択するよう求められます。現時点で最新のドライバ・バージョンは2.5.18です。使用可能な最新バージョンを選択できます。

  2. アーカイブを解凍します。

    unzip hive_jdbc_<version>.zip
  3. 抽出したコンテンツを表示します。最上位フォルダの中には、複数のZIPファイルがあります。それぞれが異なるJDBCバージョン用です。この設定では、JBDC 4.0のみ使用可能です。JDBC4_ ZIPファイル(JDBC4_<version>.zip)を選択します。

    重要:

    JDBC 4.0用のドライバを含むJDBC4_ ZIPファイルのみを選択してください。これが互換性のある唯一のバージョンです。JDBC41_*などの他のパッケージのドライバは、SQL Developer 4.2と互換性がなく、接続を試みるとエラーが返されます。
  4. Oracle SQL Developerからアクセスできるターゲット・ディレクトリ(./home/oracle/jdbcなど)にJDBC4アーカイブを解凍します。

    # unzip Cloudera_HiveJDBC4_<version>.zip -d /home/oracle/jdbc/

    抽出されたコンテンツは次のようになります。

    Cloudera_HiveJDBC4_2.5.18.1050\Cloudera-JDBC-Driver-for-Apache-Hive-Install-Guide.pdf
    Cloudera_HiveJDBC4_2.5.18.1050\Cloudera-JDBC-Driver-for-Apache-Hive-Release-Notes.pdf
    Cloudera_HiveJDBC4_2.5.18.1050\commons-codec-1.3.jar
    Cloudera_HiveJDBC4_2.5.18.1050\commons-logging-1.1.1.jar
    Cloudera_HiveJDBC4_2.5.18.1050\HiveJDBC4.jar
    Cloudera_HiveJDBC4_2.5.18.1050\hive_metastore.jar
    Cloudera_HiveJDBC4_2.5.18.1050\hive_service.jar
    Cloudera_HiveJDBC4_2.5.18.1050\httpclient-4.1.3.jar
    Cloudera_HiveJDBC4_2.5.18.1050\httpcore-4.1.3.jar
    Cloudera_HiveJDBC4_2.5.18.1050\libfb303-0.9.0.jar
    Cloudera_HiveJDBC4_2.5.18.1050\libthrift-0.9.0.jar
    Cloudera_HiveJDBC4_2.5.18.1050\log4j-1.2.14.jar
    Cloudera_HiveJDBC4_2.5.18.1050\out.txt
    Cloudera_HiveJDBC4_2.5.18.1050\ql.jar
    Cloudera_HiveJDBC4_2.5.18.1050\slf4j-api-1.5.11.jar
    Cloudera_HiveJDBC4_2.5.18.1050\slf4j-log4j12-1.5.11.jar
    Cloudera_HiveJDBC4_2.5.18.1050\TCLIServiceClient.jar
    Cloudera_HiveJDBC4_2.5.18.1050\zookeeper-3.4.6.jar

Oracle SQL Developerへの新規Hive JDBCドライバの追加

次に、SQL Developerを起動して、抽出したすべてのドライバ・ファイルを「Preferences」ウィンドウの「Third Party JDBC Drivers」にコピーします。

  1. Oracle SQL Developerをダウンロードして抽出したフォルダに移動します。

  2. sqldeveloperサブフォルダをクリックします。次に、そのフォルダのsqldeveloper.exeをクリックします。

  3. SQL Developerのメニュー・バーで、「Tools」→「Preferences」を選択します。

  4. 「Preferences」ウィンドウのファイル・エクスプローラで、「Database」を展開し、「Third Party JDBC Drivers」をクリックします。

  5. 「Add Entry」をクリックします。

  6. Cloudera_HiveJDBC4_<version>.zipから抽出したファイルを配置したフォルダに移動します。ZIPから抽出されたすべてのJARファイルをこのウィンドウにコピーして、「OK」をクリックします。

  7. Oracle SQL Developerを再起動します。

Oracle Big Data ConnectorsとOracle SQL Developerを併用するための環境変数の設定

SQL DeveloperとOracle Big Data Connectorsを併用するには、SQL DeveloperからHadoopクライアント、HadoopノードまたはHadoopエッジ・ノードへのSSH接続を作成する必要があります。このアカウントのホーム・ディレクトリには、稼働するBig Data Connectorsごとに特定の環境ファイルが必要です

注意:

Copy to Hadoopでステージング・コピーを実行する場合、Copy to Hadoopでは、データベース・システムのoracle OSアカウントに対する追加のSSH接続が必要です。

環境ファイルを作成して移入する必要があります。次の表に、正確なファイル名と各ファイルに追加する必要のあるコンテンツを示します。ファイルは、Big Data Connectorを使用するアカウントによって読み取ることができる必要があります。

環境ファイル名 コンテンツ
Copy to Hadoop用:
.sqldev_cp2hadoop_env
#!/bin/bash
# Environment file for Copy to Hadoop

export CP2HADOOP_HOME=<Parent directory of the directory containing Copy to Hadoop JARs>  
# On Oracle Big Data Appliance, the Copy to Hadoop JARs are in /opt/oracle/bigdatasql/bdcell-12.1
export HADOOP_CLASSPATH=${CP2HADOOP_HOME}/jlib/*
# ----------------------------------------------
# If using Oracle Wallet, add the following four variables:
export WALLET_LOCATION=<Location of the Oracle Wallet files>
#For example: export WALLET_LOCATION=/home/${USER}/wallet
export TNS_ADMIN=<Like WALLET_LOCATION, this also points to the location of the Oracle Wallet files>
export CLUSTER_WALLET_LOCATION=${WALLET_LOCATION}
export CLUSTER_TNS_ADMIN=${TNS_ADMIN}
Oracle Loader for Hadoop用:
.sqldev_olh_env
#!/bin/bash
# Environment file for Oracle Loader for Hadoop

export HIVE_HOME=<For example: /opt/cloudera/parcels/CDH/lib/hive>
export HIVE_CONF_DIR=<For example: /etc/hive/conf>
export OLH_HOME=<For example (on Oracle Big Data Appliance): /opt/oracle/olh>
export HADOOP_CLASSPATH=${OLH_HOME}/jlib/*:${HIVE_CONF_DIR}:${HIVE_HOME}/lib/*
export OLH_LIB_JARS=${HIVE_HOME}/lib/hive-exec.jar,${HIVE_HOME}/lib/hive-metastore.jar,${HIVE_HOME}/lib/libfb303-0.9.2.jar
# ----------------------------------------------
# If using Oracle Wallet, add the following four variables:
export WALLET_LOCATION=<Location of the Oracle Wallet files>
export TNS_ADMIN=<Same path as WALLET_LOCATION>
export CLUSTER_WALLET_LOCATION=${WALLET_LOCATION}
export CLUSTER_TNS_ADMIN=${TNS_ADMIN}
Oracle SQL Connector for HDFS用:
.sqldev_osch_env
#!/bin/bash
# Environment file for Oracle SQL Connector for HDFS

export HIVE_HOME=<For example: /opt/cloudera/parcels/CDH/lib/hive>
export HIVE_CONF_DIR=<For example: /etc/hive/conf>
export OSCH_HOME=<For example (on Oracle Big Data Appliance): /opt/oracle/osch>
export HADOOP_CLASSPATH=${OSCH_HOME}/jlib/*:${HIVE_CONF_DIR}:${HIVE_HOME}/lib/*
# ----------------------------------------------
# If using Oracle Wallet, add the following four variables:
export WALLET_LOCATION=<Location of the Oracle Wallet files>
export TNS_ADMIN=<Same path as WALLET_LOCATION>
export CLUSTER_WALLET_LOCATION=${WALLET_LOCATION}
export CLUSTER_TNS_ADMIN=${TNS_ADMIN}

Oracle Big Data Connectors用のセキュアな接続の設定

Oracle Big Data ConnectorsがHadoopにアクセスする際に必要なSSH接続を作成する方法の詳細は、『Oracle SQL Developerユーザーズ・ガイド』のSQL DeveloperでのApache Hadoop Connectorsのサポートに関する項を参照してください。