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

前
次

1 Oracle Big Data Connectorsを使用する前に

この章では、Oracle Big Data Connectorsについて説明し、インストール手順を示します。

この章は次の項で構成されています:

1.1 Oracle Big Data Connectorsについて

Oracle Big Data Connectorsを使用すると、Apache Hadoopクラスタに格納されているデータへのアクセスが簡単になります。Oracle Big Data Applianceまたはコモディティ・ハードウェア上で稼働するHadoopクラスタでの使用に対してライセンス供与されます。

次のコネクタがあります。

  • Oracle SQL Connector for Hadoop Distributed File System: Oracle外部表は、Hadoop Distributed File System (HDFS)ファイルまたはApache Hiveの表に格納されているデータにアクセスできます。データをHDFSまたはHive表に保持することも、Oracle Databaseにロードすることもできます。

  • Oracle Loader for Hadoop: HadoopクラスタからOracle Databaseの表にデータをすばやく移動するための効率的でパフォーマンスのよいローダーを提供します。Oracle Loader for Hadoopは、必要に応じてデータを事前にパーティション化し、そのデータをデータベース対応形式に変換します。また、データのロードや出力ファイルの作成の前に主キーまたはユーザー定義の列でレコードを任意にソートします。

  • Oracle XQuery for Hadoop: XQuery言語で表された変換を一連のMapReduceジョブに解釈して実行します(これらのジョブはHadoopクラスタ上で並列で実行されます)。入力データは、Hadoop Distributed File System (HDFS)など、Hadoopのファイル・システムAPIを介してアクセス可能なファイル・システムに配置するか、Oracle NoSQL Databaseに格納できます。Oracle XQuery for Hadoopでは、変換結果をHDFS、Oracle NoSQL Database、Apache SolrまたはOracle Databaseに書き込むことができます。追加のXML処理機能は、XML Extensions for Hiveを通じて提供されます。

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

  • Oracle R Advanced Analytics for Hadoop: 汎用計算フレームワークを提供します。このフレームワークでは、R言語を使用してカスタム・ロジックをマッパーまたはレデューサとして作成できます。Rパッケージのコレクションにより、MapReduceジョブとして実行される予測分析法が提供されます。コードは、Hadoopクラスタで使用可能な計算リソースとストレージ・リソースを使用する分散並列方式で実行されます。Oracle R Advanced Analytics for Hadoopには、Apache Hive表、Apache Hadoop計算インフラストラクチャ、ローカルR環境およびOracleデータベース表を操作するインタフェースが組み込まれています。

  • Oracle Data Integrator: ファイルおよびデータベースなどのソースからHadoopに、またはHadoopからOracleやその他のサードパーティ・データベースに、データを抽出、ロードおよび変換します。Oracle Data Integratorは、ネイティブなHadoopツールを使用するグラフィカルなユーザー・インタフェースおよびHive、HBase、Sqoop、Oracle Loader for HadoopおよびOracle SQL Connector for Hadoop Distributed File Systemなどの変換エンジンを提供します。

  • Oracle Datasource for Hadoop: SerDes、HCatalog、InputFormatおよびStorageHandlerをサポートするHadoop APIを使用する以外に、Hive SQLやSpark SQLを使用して、Oracle Databaseのマスター・データに直接、すばやく、パラレルかつ安全に、一貫してアクセスできます。

それぞれのコネクタでは、Oracle Databaseと、Hadoopクラスタまたはクラスタに対してHadoopクライアントとして設定した外部システムにソフトウェア・コンポーネントをインストールする必要があります。Oracle Databaseでの追加のアクセス権限が必要な場合もあります。Oracle Database and Apache Hadoopとの統合の詳細は、動作保証マトリックスを参照してください。

関連項目:

My Oracle Support情報センター: Big Data Connectors (ID 1487399.2)およびその関連情報センター。

1.2 ビッグ・データの概念とテクノロジ

エンタープライズでは、複数のソースから生じる大量のデータを参照します。分析した場合にエンタープライズにとってきわめて大きな価値となる膨大な量のデータのほんの一例として、Webログのクリックストリーム・データ、GPS追跡情報、小売事業のデータ、センサー・データおよびマルチメディア・ストリームなどがあります。生のデータ・フィードから取得する非構造化および半構造化情報は、それ自体ほとんど価値はありません。実際に価値のある情報を抽出するには、データを処理する必要があります。処理されたデータは、その後データベースに格納して管理できます。このデータをデータベースの構造化データと一緒に分析することで、新たな理解が得られ、実質的なビジネス利益につながります。

1.2.1 MapReduceとは

MapReduceは、分散システムでデータを処理するための並列プログラミング・モデルです。大量のデータを迅速に処理し、線形的に拡張できます。特に、非構造化データおよび半構造化データのバッチ処理のメカニズムとして効果的です。MapReduceは、比較的下位の操作を一連のキーと値を通じて計算に抽象化します。

MapReduceジョブを簡単に定義すると、2つのフェーズ(マップ・フェーズとリデュース・フェーズ)が連続的に交代する操作になります。各マップ・フェーズは、入力データの各レコードに変換機能を適用して、キーと値のペアで表現される一連のレコードを作成します。マップ・フェーズからの出力は、リデュース・フェーズへの入力になります。リデュース・フェーズでは、マップ出力レコードはキーと値のセットにソートされるため、セット内のすべてのレコードのキーの値が同じになります。リデューサ関数がセット内のすべてのレコードに適用され、一連の出力レコードがキーと値のペアで作成されます。マップ・フェーズは、各レコードに対して論理的に並列で実行され、リデュース・フェーズは、すべてのキーの値に対して並列で実行されます。

注意:

Oracle Big Data Connectors 3.0以降は、MapReduceのYet Another Resource Negotiator (YARN)実装をサポートしています。

1.2.2 Apache Hadoopとは

Apache Hadoopは、MapReduceプログラミング・モデルに基づく、データ処理ジョブの開発およびデプロイ用ソフトウェア・フレームワークです。中核機能として、Hadoopは、信頼できる共有ストレージおよび分析システム脚注 1を提供します。分析はMapReduceによって行われます。ストレージは、MapReduceジョブ向けに設計された共有ストレージ・システムであるHadoop Distributed File System (HDFS)によって行われます。

Hadoopエコシステムには、その他にApache Avro (Oracle Loader for Hadoopで使用されるデータ・シリアライズ・システム)などのプロジェクトが複数含まれています。

Cloudera's Distribution including Apache Hadoop (CDH)は、Oracle Big Data Applianceにインストールされます。この章の設定手順で説明されているように、CDHまたは同等のApache Hadoopコンポーネントが稼働するHadoopクラスタでOracle Big Data Connectorsを使用できます。

関連項目:

  • Hadoopテクノロジに関する概念上の情報については、次のサードパーティの公開内容を参照してください。

    『Hadoop: The Definitive Guide, Third Edition』Tom White著(O'Reilly Media Inc., 2012, ISBN: 978-1449311520)。

  • Cloudera's Distribution including Apache Hadoop (CDH5)の詳細は、Oracle Clouderaの次のWebサイトを参照してください

    http://oracle.cloudera.com/

  • Apache Hadoopの詳細は、次のWebサイトを参照してください

    http://hadoop.apache.org/

1.3 Oracle Big Data Connectorsのダウンロードとインストール

Oracle Big Data Connectorsは、Oracle Technology NetworkまたはOracle Software Delivery Cloudからダウンロードできます。どちらのサイトも複数のブラウザに対応しています。

注意:

Oracle Big Data Applianceのユーザーは、外部ソースからOracle Big Data Connectorsをダウンロードする必要はありません。Oracle Big Data Connectorsは、Oracle Big Data Applianceデプロイメント・バンドルに含まれています。Oracle Big Data Applianceオーナーズ・ガイドのOracle Big Data Connectorsの有効化および無効化を参照してください。他のすべてのユーザーは、ここで説明するようにソフトウェアをダウンロードする必要があります。

Oracle Technology Networkからダウンロードするには、次の手順を実行します。

  1. 次にアクセスします

    http://www.oracle.com/technetwork/bdc/big-data-connectors/downloads/index.html

  2. 各コネクタの名前をクリックして、インストール・ファイルを含むzipファイルをダウンロードします。

Oracle Software Delivery Cloudからダウンロードするには、次の手順を実行します。

  1. https://edelivery.oracle.com/に移動します
  2. サインインして、Export Restrictionsを受諾します。
  3. 製品名をProductフィールドに入力して、プラットフォームを選択します。

    Product: Oracle Big Data Connectors

    プラットフォーム: Linux x86-64

  4. Oracle Big Data ConnectorsがProductリストに表示されたら、Continueをクリックします。Oracle Big Data Connectorsの最新メジャー・リリースが選択したオプションとして表示されます。
  5. 別のリリースを選択するには、Select Alternate Releaseをクリックして、リストから別のパッケージを選択します。Continueをクリックします。
  6. Terms and Conditionsを読みます。受諾する場合はチェックボックスをクリックし、Continueをクリックします。
  7. ダウンロード・サイトで、個々のOracle Big Data Connectorsのzipファイルを選択するか、「Download All」をクリックします。
各ダウンロード・パッケージには、インストール手順と一連の例を含むREADMEファイルが含まれています。

1.4 動作保証されたHadoopプラットフォーム

すべてのOracle Big Data Connectorsは、CDH (Cloudera Distribution Including Apache Hadoop)とHDP (Hortonworks Data Platform)の両方で動作します。

CDHおよびHDPの現在サポートされているリリースについては、Oracle Big Data Connectors動作保証マトリックスを参照してください

.

1.5 Oracle SQL Connector for Hadoop Distributed File Systemの設定

Oracle SQL Connector for Hadoop Distributed File System (HDFS)は、Oracle Databaseが稼働するシステムにインストールして構成します。Hive表がデータソースとして使用される場合、ユーザーがHiveにアクセスするHadoopクライアントにOracle SQL Connector for HDFSもインストールして実行する必要があります。

Oracle Big Data Applianceでは、インストール環境にOracle Big Data Connectorsを含めるオプションがあります。構成生成ユーティリティでこれを選択した場合は、アプライアンスでOracle SQL Connector for HDFSをすでに使用できます。(Big Data Applianceオーナーズ・ガイドの第4章Oracle Big Data Appliance構成生成ユーティリティの使用を参照してください。)

この項の内容は次のとおりです。

1.5.1 ソフトウェア要件

Oracle SQL Connector for HDFSには、次のソフトウェアが必要です。

Hadoopの要件:

  • CDH (Cloudera Distribution Including Apache Hadoop)またはHDP (Hadoop Data Platform)の動作保証済リリース。

  • Apache Hive 1.1.0または1.2.1 (Hive表にアクセスする場合は必須、それ以外はオプション)。

  • Java Development Kit (JDK)。推奨バージョンについては、Hadoopソフトウェアの代理店(ClouderaまたはApache)に確認してください。

サポートされているCDHおよびHDPのリリースについては、Oracle Big Data Connectors動作保証マトリックスを参照してください

Oracle Big Data Applianceは、すでにこれらの要件を満たしています。コモディティ・サーバー・プラットフォーム上でCDHまたはHDPを使用している場合は、システムがそれらを満たしていることを確認してください。

Oracle DatabaseシステムおよびHadoopクライアント・システムの要件:

  • Oracleで現在サポートされているOracle Databaseのバージョン

  • Hadoopクラスタにインストールされているのと同じバージョンのHadoop (CDH5、またはHortonworks Data Platform 2.4.0および2.5.0)

    Kerberosを使用してセキュアなHadoopクラスタを構成している場合は、データベース・システムのHadoopクライアントを、セキュアなクラスタにアクセスするように設定する必要があります。

  • Hadoopクラスタにインストールされているのと同じバージョンのJDK

注意:

Oracle SQL Connector for HDFSは、データベース・システムのOSプラットフォーム上のHadoopクライアントを必要とします。これはLinuxシステムでは単純です。Linux以外のプラットフォームでは、Hadoopクライアントのtarballをインストールする必要があります。Oracle Blogの投稿Connecting Hadoop with Oracleを参照してください。詳細は、My Oracle Supportの次のドキュメントを参照してください。

1.5.2 Oracle DatabaseシステムへのHadoopクライアントのインストールと構成

Oracle SQL Connector for HDFSは、Oracle Databaseシステム上のHadoopクライアントを必要とします。Hadoopクライアントを使用する場合にかぎり、Hadoopのインストールを最小限に構成できます。Hadoopの完全な構成は必要ありません。Oracle SQL Connector for HDFSで必要なHadoopの部分は、HadoopインストールからのHadoop JARファイルおよび構成ファイルのみです。

注意:

Oracle DatabaseシステムにHadoopが完全にインストールされている場合でも、決してこのシステムでHadoopを起動しないでください。Hadoopがローカルで実行されていると、Oracle SQL Connector for HDFSはHadoopクラスタではなく、そのHadoopへの接続を試行します。

Oracle Exadata Database Machineが含まれるOracle RACシステムの場合は、Oracleインスタンスを実行しているすべてのシステムで同一パスを使用して、Oracle SQL Connector for HDFSをインストールして構成する必要があります。

Oracle Big Data Applianceと併用するためのHadoopクライアントの追加

Oracle Big Data Applianceでは、システムでサポートされる独自の手順に従って、Hadoopクライアントをインストールする必要があります。HadoopシステムがOracle Big Data Applianceである場合は、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』のCDHへのリモート・アクセスの提供に関する項を参照してください。この項では、CDHクライアントをインストールし、Kerberosで保護された環境または保護されていない環境で使用するために構成し、HDFSアクセスを検証する方法を説明します。

他のHadoopシステムと併用するためのHadoopクライアントの追加

Oracle Big Data Appliance以外のHadoopシステムに接続する場合は、Hadoop代理店(ClouderaまたはApache)によって提供されるHadoopクライアントをダウンロードしてインストールします。次の例は、Oracle Big Data Appliance以外のCDHシステムにHadoopクライアントを接続する方法を示しています。次のステップを使用して、クライアントをインストールし、Kerberosで保護された環境または保護されていない環境で使用するために構成し、HDFSアクセスを検証するためにテストできます。

この場合、Kerberosアクセスも設定し(Kerberosがインストールされている場合)、HDFSアクセスが確実に動作するように最終テストを含める必要があります。

  1. 次のいずれかの方法を使用してファイルを取得します。

    • Clouderaのtarballダウンロード・ページから、tarballをダウンロードします。ファイル名のHadoopバージョン(hadoop-2.5.0-cdh5.2.5.tar.gzなど)が、Hadoopクラスタのバージョンと一致していることを確認してください。

    • Cloudera Managerでhdfsサービスをクリックし、Download Client Configurationアクションを選択します。

  2. ファイルを抽出してデータベース・システムの任意の永続パスにコピーします。

  3. HADOOP_HOME環境変数をこのパスに設定し、PATH変数にHADOOP_HOME/binを追加します。

  4. JAVA_HOMEが、Hadoopインストールで必要とされるバージョンのJDKインストールを指していることを確認します。

  5. クラスタがKerberosで保護されている場合は、Kerberos認証を許可するようにOracleシステムを構成します。「セキュアなHadoopクラスタでのOracle SQL Connector for HDFSの使用」を参照してください。

  6. Oracle DatabaseシステムからHDFSへのアクセスをテストします。

    1. Oracle Databaseアカウントを使用して、Oracle Databaseが稼働しているシステムにログインします。

    2. Bashシェルを開き、次のコマンドを入力します。
      $ hdfs dfs -ls /user

      場合によっては、Hadoopの実行可能ファイルが格納されているディレクトリを環境変数に追加する必要があります。CDHのデフォルト・パスは/usr/binです。

      Hadoopクラスタ上で直接コマンドを実行する場合と同じディレクトリ・リストが表示されます。表示されない場合、最初にHadoopクラスタが稼働していることを確認します。問題が続く場合、Oracle DatabaseからHadoopクラスタ・ファイル・システムにアクセスできるようにHadoopクライアント構成を修正する必要があります。

  7. Oracle RACシステムの場合、各Oracle Databaseインスタンスに対してこの手順を繰り返します。

追加システムでのHadoopクライアントの設定

Oracle Databaseシステムに加え、他のサーバーでHadoopクライアントを設定することもできます。その場合、この項に記載されている手順を使用して、競合しないように同じバージョンのCDHまたはApache Hadoopをインストールします。

1.5.3 Oracle SQL Connector for HDFSのインストール

Oracle DatabaseシステムにOracle SQL Connector for HDFSをインストールするには、次の手順を実行します。

データベース・システム上のこの必須インストールの他に、互換Hadoopクライアントとして構成されたどのシステムにもOracle SQL Connector for HDFSをインストールできます。こうすることで、そのノードからOracle Database外部表を作成できるようになります。

Oracle DatabaseシステムにOracle SQL Connector for HDFSをインストールするには、次の手順を実行します。

  1. Oracle Databaseが稼働するシステムのディレクトリにzipファイルをダウンロードします。

  2. oraosch-<version>.zipの内容を解凍します。

    $ unzip oraosch-<version>.zip
    Archive:  oraosch-<version>.zip
     extracting: orahdfs-<version>.zip
      inflating: README.txt
  3. orahdfs-<version>.zipを永続ディレクトリに解凍します。

    $ unzip orahdfs-<version>.zip
    unzip orahdfs-<version>.zip
    Archive:  orahdfs-<version>.zip
       creating: orahdfs-<version>/
       creating: orahdfs-<version>/log/
      inflating: orahdfs-<version>/examples.zip   
       creating: orahdfs-<version>/doc/
      inflating: orahdfs-<version>/doc/README.txt
       creating: orahdfs-<version>/jlib/
      inflating: orahdfs-<version>/jlib/osdt_cert.jar
      inflating: orahdfs-<version>/jlib/oraclepki.jar
      inflating: orahdfs-<version>/jlib/osdt_core.jar
      inflating: orahdfs-<version>/jlib/ojdbc7.jar
      inflating: orahdfs-<version>/jlib/orahdfs.jar
      inflating: orahdfs-<version>/jlib/ora-hadoop-common.jar
       creating: orahdfs-<version>/bin/
      inflating: orahdfs-<version>/bin/hdfs_stream
      inflating: orahdfs-<version>/bin/hdfs_stream.cmd

    解凍したファイルの構造は、例1-1のようになります。examples.zipファイルは解凍されていません。このサンプルを使用する場合は、後でそのファイルを解凍します。

  4. orahdfs-<version>/bin/hdfs_stream Bashシェル・スクリプトをテキスト・エディタで開き、必要に応じて、スクリプトのコメントに示される変更を行います。

    hdfs_streamスクリプトには環境変数の設定は継承されないため、Oracle SQL Connector for HDFSで環境変数が必要な場合はこのスクリプトに設定します。

    • PATH: hadoopスクリプトが/usr/bin:bin (hdfs_streamで最初に設定されるパス)にない場合は、/usr/lib/hadoop/binなどのHadoop binディレクトリに追加します。

    • JAVA_HOME: HadoopによってJavaが検出されない場合、この変数をJavaのインストール・ディレクトリに設定します。(/usr/bin/javaなど)。

    各環境変数の詳細は、スクリプトのコメントを参照してください。

    hdfs_streamスクリプトは、Oracle SQL Connector for HDFSで作成されたOracle Database外部表のプリプロセッサです。

  5. クラスタがKerberosで保護されており、アカウントでまだKerberosチケットを持っていない場合、それを取得します。

    $ kinit
    

    Kerberosチケットの取得および管理の詳細は、このガイドの「セキュアなHadoopクラスタでのOracle SQL Connector for HDFSの使用」を参照してください。

  6. HDFSの/binディレクトリの場合は、Oracle SQL Connectorからhdfs_streamを実行します。次の使用方法の情報が表示されます。

    $ ./hdfs_stream
    Usage: hdfs_stream locationFile
    

    使用方法の情報が表示されない場合、Oracle Databaseを実行しているオペレーティング・システム・ユーザー(oracleなど)に次の権限があることを確認します。

    • hdfs_streamスクリプトに対する読取り権限と実行権限。

      $ ls -l OSCH_HOME/bin/hdfs_stream
      -rwxr-xr-x 1 oracle oinstall Nov 27 15:51 hdfs_stream
    • orahdfs.jarに対する読取り権限。

      $ ls -l OSCH_HOME/jlib/orahdfs.jar
      -rwxr-xr-x 1 oracle oinstall Nov 27 15:51 orahdfs.jar

    これらの権限が表示されない場合、chmodコマンドを入力して権限を修正します。たとえば、次のように入力します。

    $ chmod 755 OSCH_HOME/bin/hdfs_stream

    前述のコマンドでは、OSCH_HOMEは、Oracle SQL Connector for HDFSホーム・ディレクトリを表します。

  7. Oracle RACシステムの場合、同じパスの場所を使用し、各Oracleインスタンスに対して前述のステップを繰り返します。

  8. Oracle Databaseにログインし、hdfs_streamが格納されているorahdfs-<version>/binディレクトリのデータベース・ディレクトリを作成します。Oracle RACシステムの場合、このディレクトリにはすべてのOracleインスタンスが同一のパスを使用してアクセスできる必要があります。

    次の例では、Oracle SQL Connector for HDFSは/etcにインストールされます。

    SQL> CREATE OR REPLACE DIRECTORY osch_bin_path AS '/etc/orahdfs-<version>/bin';
  9. Hive表へのアクセスをサポートするには、次の手順を実行します。

    1. システムがHiveクライアントして構成されていることを確認します。

    2. HiveのJARファイルとconfディレクトリをHADOOP_CLASSPATH環境変数に追加します。各種のHadoop製品間でJARが競合しないようにするため、HADOOP_CLASSPATHは、グローバルに変更するのではなく、ローカル・シェル初期化スクリプトに設定することをお薦めします。複数のJARファイル・パスがHADOOP_CLASSPATHにある場合は、現在の製品のJARを最初にリストしてください。

次の図に、データの流れとコンポーネントの場所を示します。

図1-1 HDFSおよびデータ・ポンプ・ファイルをサポートするOracle SQL Connector for HDFSのインストール

図1-1の説明が続きます。
「図1-1 HDFSおよびデータ・ポンプ・ファイルをサポートするOracle SQL Connector for HDFSのインストール」の説明

解凍したファイルの構造は、次の例のようになります。

例1-1 orahdfsディレクトリの構造

orahdfs-<version>
   bin/
      hdfs_stream
      hdfs_stream.cmd   
   doc/
      README.txt
   jlib/ 
      ojdbc7.jar
      oraloader.jar      
      ora-hadoop-common.jar
      oraclepki.jar
      orahdfs.jar
      osdt_cert.jar
      osdt_core.jar
   log/
   examples.zip 

1.5.4 OSCHユーザーのOracle Database権限

Oracle DatabaseユーザーがOracle SQL Connector for HDFSを使用して外部表を作成するには、次の権限が必要です。

  • CREATE SESSION

  • CREATE TABLE

  • CREATE VIEW

  • UTL_FILE PL/SQLパッケージに対するEXECUTE

  • Oracle SQL Connector for HDFSのインストール時に作成されるOSCH_BIN_PATHディレクトリに対するREADおよびEXECUTE。書込みアクセス権は誰にも付与しないでください。Oracle SQL Connector for HDFSを使用する予定のユーザーにのみEXECUTEを付与します。

  • 外部表を格納するデータベース・ディレクトリに対するREADWRITE、またはCREATE ANY DIRECTORYシステム権限。Oracle RACシステムの場合、このディレクトリは、すべてのOracleインスタンスでアクセスできる共有ディスク上に存在する必要があります。

  • データをOracleデータベースにコピーする表領域と割当て。オプション。

次の例に、これらの権限をHDFSUSERに付与するSQLコマンドを示します。

注意:

Oracle SQL Connector for HDFSを使用する外部表を問い合せる場合にユーザーに必要な権限は、Oracle Database 12c以降の場合はREAD権限、およびそれより古いバージョンのデータベースの場合はSELECT権限です。

例1-2 Oracle SQL Connector for HDFSに対するユーザー・アクセス権の付与

CONNECT / AS sysdba;
CREATE USER hdfsuser IDENTIFIED BY password
   DEFAULT TABLESPACE hdfsdata
   QUOTA UNLIMITED ON hdfsdata;
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO hdfsuser;
GRANT EXECUTE ON sys.utl_file TO hdfsuser;
GRANT READ, EXECUTE ON DIRECTORY osch_bin_path TO hdfsuser;
GRANT READ, WRITE ON DIRECTORY external_table_dir TO hdfsuser;

1.5.5 OSCHユーザーのOSレベル要件

Oracle Databaseシステム、Hadoopクラスタ・ノード、またはHadoopクライアントとして設定された個別システムにOracle SQL Connector for HDFSがインストールされている場合、OSCHを使用するためにログインするOSレベル・ユーザーは、必ずシェル変数HADOOP_CLASSPATHにアクセスする必要があります。この変数には、Hadoopクラスタ上のOSCHパス(path/orahdfs-<version>/jlib/*)が含まれる必要があります

次の例のように、OSCHパスが現在のHADOOP_CLASSPATHの前に付加されるように、HADOOP_CLASSPATHを設定します。最初に配置されたOSCHは、パス内の他のJARに優先します。

$ export HADOOP_CLASSPATH="/etc/orahdfs-<version>/jlib/*:$HADOOP_CLASSPATH"

1.5.6 セキュアなHadoopクラスタでのOracle SQL Connector for HDFSの使用

ユーザーが、Oracle SQL Connector for HDFSを使用して作成された外部表にアクセスする場合、外部表は、Hadoopクライアントのように動作します。Oracle Databaseが稼働しているシステムで、それはOracleプロセスのOSユーザー(通常はoracle)として接続します。OSCHが動作するためには、このアカウントに、すべてのOSCHユーザーのファイルに対する読取り権限が必要です。保護されていないクラスタでは、これらのファイルは誰でも読取り可能ですが、Kerberosで保護されたクラスタでは、このアクセスにKerberosチケットが必要です。

kinitを使用してユーザーを認証する場合:

  • Hadoop管理者は、クラスタに対するKey Distribution Center (KDC)にオペレーティング・システム・ユーザー(oracleなど)およびパスワードを登録する必要があります。

  • Oracle Databaseシステムのシステム管理者は、/etc/krb5.confを構成して、セキュアなクラスタによって管理されているKDCを参照するドメイン定義を追加します。

これらのステップを使用すると、オペレーティング・システム・ユーザーは、kinitユーティリティで認証されてから、Oracle SQL Connector for HDFSジョブを発行できます。kinitユーティリティは通常、認証用のKerberosキータブ・ファイルを使用し、パスワードに対話型プロンプトを使用しません。

システムではkinitをKerberosチケットの失効前に定期的に実行して、Oracle SQL Connector for HDFSによる透過的な認証を可能にする必要があります。cronまたは類似ユーティリティを使用して、kinitを実行します。たとえば、Kerberosチケットが2週間ごとに期限が切れる場合は、チケットの期限を1週間ごとに延長するようにcronジョブを設定します。

Oracle SQL Connector for HDFSがアクティブに使用されなくなったら実行されるように、cronジョブがスケジュールされていることを確認してください。

Oracle SQL Connector for HDFSプリプロセッサ・スクリプト(hdfs_stream)内のkinitは、kinitに対する大量の同時呼出しがトリガーされて、内部Kerberosキャッシュ・エラーが作成される可能性があるため、呼び出さないでください。

注意:

Oracle Big Data Applianceでは、Kerberosセキュリティが構成オプションとして自動的に構成されます。

1.5.7 Oracle SQL DeveloperでのOSCHの使用

Oracle SQL Developerは、多くの製品の中でも特にOracle DatabaseおよびOracle Big Data Connectorsとの統合を実現した無償のグラフィカルIDEです。これには、Oracle Big Data Connectorsへのアクセスとその使用を支援するウィザードが付属しています。Oracle SQL DeveloperをダウンロードしてOracle Big Data Connectorsと併用するためにそれを構成する方法の詳細は、このガイドの「Oracle SQL DeveloperとOracle Big Data Connectorsの併用」を参照してください。

1.6 Oracle Loader for Hadoopの設定

1.6.1 ソフトウェア要件

Oracle Loader for Hadoopには、次のソフトウェアが必要です。

  • CDHまたはHDPの動作保証済リリース。

    Oracle Big Data Connectors動作保証マトリックスを参照してください

  • Oracleで現在サポートされているバージョンのOracle Databaseを実行しているターゲット・データベース・システム。

Oracle Big Data Applianceは、すでにこれらの要件を満たしています。コモディティ・サーバー・プラットフォーム上でCDHまたはHDPを使用している場合は、システムがそれらを満たしていることを確認してください。

1.6.2 Oracle Loader for Hadoopのインストール

Oracle Loader for Hadoopは、Oracle Database 12c (12.1.0.2および12.2.0.1)クライアント・ライブラリ、およびOracle Database 11.2.0.4、12.1.0.2または12.2.0.1に接続するためのOracle Instant Clientライブラリに同梱されています。

Oracle Loader for Hadoopをインストールするには、次の手順を実行します。

  1. oraloader-<version>.x86_64.zipの内容をHadoopクラスタまたはHadoopクライアントとして構成したシステムのディレクトリに解凍します。
  2. oraloader-<version>-h2.x86_64.zipをHadoopクラスタのディレクトリに解凍します。

    oraloader-<version>-h2というディレクトリが、次のサブディレクトリとexamples.zipファイル(自分で解凍する必要がある)とともに作成されます。

    doc
    jlib
    lib
    examples.zip
  3. OLH_HOMEという変数を作成し、その変数をインストール・ディレクトリに設定します。
  4. HADOOP_CLASSPATH変数に次のパスを追加します。
    • すべてインストールする場合:

      $OLH_HOME/jlib/*

      OLHを使用するとき、$OLH_HOME/jlib/*は常にHADOOP_CLASSPATHに最初に指定する必要があります。または、それを使用するスクリプト内にHADOOP_CLASSPATHを定義することで、他のスクリプトとの競合を避けることができます。

    • Hive表からのデータのロードをサポートする場合:

      /usr/lib/hive/lib/*
      /etc/hive/conf

      「oracle.hadoop.xquery.lib.share」を参照してください。

    • Oracle NoSQL Databaseリリース2からデータを読み取る場合:

      $KVHOME/lib/kvstore.jar

1.6.3 オフライン・データベース・モードのサポート

一般的なインストールでは、Oracle Loader for HadoopはHadoopクラスタまたはHadoopクライアントからOracle Databaseシステムに接続できます。接続できない場合(複数のシステムが異なるネットワーク上にある場合など)は、Oracle Loader for Hadoopをオフライン・データベース・モードで使用できます。

オフライン・データベース・モードをサポートするには、2つのシステムにOracle Loader for Hadoopをインストールする必要があります。

  • Hadoopクラスタ、またはHadoopクライアントとして設定されているシステム。

  • Oracle DatabaseシステムまたはOracle Databaseへのネットワーク・アクセスを備えたシステム(次の手順を参照)。

Oracle Loader for Hadoopをオフライン・データベース・モードでサポートするには、次の手順を実行します。

  1. oraloader-<version>.zipの内容をOracle DatabaseシステムまたはOracle Databaseへのネットワーク・アクセスを備えたシステムに解凍します。Hadoopクラスタにインストールしたものと同じバージョンのソフトウェアを使用する必要があります。
  2. oraloader-<version>-h2.x86_64.zipを解凍します。
  3. OLH_HOMEという変数を作成し、その変数をインストール・ディレクトリに設定します。次の例では、Bashシェル構文を使用しています。
    $ export OLH_HOME="/usr/bin/oraloader-<version>-h2/"
  4. Oracle Loader for HadoopのJARファイルをHADOOP_CLASSPATH環境変数に追加します。他のJARファイル・パスがHADOOP_CLASSPATHにある場合、Oracle Loader for Hadoopを使用するときにはOracle Loader for HadoopのJARファイル・パスを最初に指定してください。次の例では、Bashシェル構文を使用しています。
    $ export HADOOP_CLASSPATH=$OLH_HOME/jlib/*:$HADOOP_CLASSPATH

1.6.4 セキュアなHadoopクラスタでのOracle Loader for Hadoopの使用

セキュアなHadoopクラスタでは、Kerberosがインストール済で、クライアント・アクティビティを認証するように構成されています。オペレーティング・システム・ユーザーは認証されてから、Oracle Loader for Hadoopジョブを開始してセキュアなHadoopクラスタで実行する必要があります。認証の場合、ユーザーは、ジョブを発行するオペレーティング・システムにログインして、標準のKerberosのkinitユーティリティを使用する必要があります。

kinitを使用してユーザーを認証する場合:

  • Hadoop管理者は、クラスタに対するKey Distribution Center (KDC)にオペレーティング・システム・ユーザーおよびパスワードを登録する必要があります。

  • オペレーティング・システム・ユーザーがOracle Loader for Hadoopジョブを開始するクライアント・システムのシステム管理者は、/etc/krb5.confを構成して、セキュアなクラスタによって管理されているKDCを参照するドメイン定義を追加する必要があります。

通常、kinitユーティリティでは、数日間有効の認証チケットを取得します。後続のOracle Loader for Hadoopジョブは、失効していないチケットを使用して透過的に認証されます。

Oracle Big Data Applianceでは、Kerberosセキュリティが構成オプションとして自動的に構成されます。

1.7 Oracle Shell for Hadoop Loadersの設定

Oracle Shell for Hadoop Loaders (OHSH)は、Big Data Connectorsと統合されます。これには、Oracle Loader for Hadoop (OLH)およびOracle SQL Connector for Hadoop Distributed File System (OSCH)を使用してHadoopおよびHiveからOracle Database表にコンテンツをロードするために使用できる、一連の宣言的コマンドが用意されています。Copy to Hadoopを使用してOracle Database表からHadoopおよびHiveにコンテンツをロードすることもできます。

前提条件

OHSHは、OLHおよびOSCHと連携して、次のいずれかの環境からOracle Database表にデータをロードできます。

  • Hadoopクライアント

  • エッジ・ノード

  • Hadoopノード

  • Oracle Databaseサーバー

OHSHは、前述のどの環境でも設定できます(Hadoopクライアント、Hadoopノード、エッジ・ノードまたはOracle Databaseサーバー)。OHSHを使用するには、これらの環境のいずれか1つにソフトウェアをインストールする必要があります。

各環境には、固有の前提条件があります。次の表内の関連する列を確認して、OHSHを実行することにした環境に不足しているソフトウェア・パッケージをインストールします。表に示すとおり、JDBC接続はすべてのケースで必要です。

表1-1 OHSHを実行するための前提条件

OHSHを実行する予定の環境 前提条件
Hadoopノード、Hadoopクライアントまたはエッジ・ノード

注意:

Oracle Big Data Appliance上でBig Data Connectorsがライセンス付与されている場合、前提条件となるすべてのソフトウェアとOHSH自体が事前にインストールされます。

  • SQL*Plus

  • OLHおよびOSCH

  • JDBCによるOracle Databaseへのアクセス

Oracle Databaseサーバー
  • HadoopライブラリおよびHiveライブラリ(インストールされ構成されている)

  • OLHおよびOSCH

  • JDBCによるOracle Databaseへのアクセス

Oracle Shell for Hadoop Loadersのインストール

Oracle Shell for Hadoop Loadersを設定するには、次の手順に従います。この手順は、Hadoopクライアント、エッジ・ノードもしくはHadoopノード上、またはOracle Databaseサーバー上での設定に適用されます。

  1. OHSHを実行する予定のシステム上のディレクトリにohsh-<version>.zipの内容を解凍します。

    解凍すると、README.txtファイル、サンプル・パッケージ(examples.zip)および次の4つのサブディレクトリを含む、ohsh-<version>というディレクトリが作成されます。

    README.txt
    examples.zip
    /bin
    /conf
    /doc
    /jlib

    自分でexamples.zipを解凍する必要があります。

    ohsh-<version>ディレクトリは、これらの手順では後で<OHSH_HOME>と呼ばれます。

  2. README.txtに記載された手順に従い、Oracle Shell for Hadoop Loadersを構成します。次は、Hadoopノード上でOracle Shell for Hadoop Loadersをインストールして構成する手順を示します。

1.7.1 HadoopノードでのOracle Shell for Hadoop Loadersのインストール

この手順は、Hadoopノードでのインストールのみに適用されます。他のシステムでのインストールの場合は、OHSH README.txtファイルを参照してください。

注意:

次の手順では、一部の変数の値として設定する絶対パスにプレースホルダを使用します。これらはイタリック・フォントであり、大カッコで囲まれます。たとえば、<OHSH_HOME>は、OHSHがインストールされているパスです。
  1. SQL*Plusがまだノードにない場合は、インストールして設定します。
    1. Oracle Instant Client for Linuxを、対応するInstant Client Package for SQL*PlusとともにOracle Technology Networkからダウンロードします。Oracle Databaseのバージョンと一致するクライアント・バージョンを選択します。
      たとえば、次のアドレスでは、Oracle Database 12.2.0.1.0用のクライアントをダウンロードできます。

      http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

  2. 両方のクライアントを同じディレクトリ(<SQLPLUS_DIR>)に解凍します。
  3. tnsnames.oraファイルとsqlnet.oraファイルをOracle Databaseホスト上の${TNS_ADMIN}からHadoopノード上の選択したディレクトリ(<TNS_ADMIN_DIR>)にコピーします。
    Oracle Databaseホスト用にOracle Walletを作成した場合は、ウォレット・ファイルをHadoopノード上の選択したディレクトリ(<WALLET_LOCATION_DIR>)にコピーします。
  4. sqlnet.oraを編集します。WALLET_LOCATION<WALLET_LOCATION_DIR>に設定します。sqlnet.wallet_overridetrueに設定されていることも確認してください。
       WALLET_LOCATION=
          (SOURCE=(METHOD=FILE)(METHOD_DATA=
            (DIRECTORY=<WALLET_LOCATION_DIR>)))
       sqlnet.wallet_override=true
    
  5. OLHとOSCHをHadoopノードにインストールします(まだインストールしていない場合)。
    OSCHにはOracle Databaseホスト上とHadoopノード上でのインストールと構成のステップが必要なことに注意してください。OLHとOSCHの両方について、Big Data Connectorsユーザーズ・ガイドの設定手順に従います。
  6. <OHSH_HOME>/bin/ohsh_config.shを編集して、OHSHの従属物のホーム・ディレクトリを構成します。
       export HADOOP_HOME=<HADOOP_CLIENT_KIT>   
       export HADOOP_CONF_DIR=<HADOOP_CONF>
       export HIVE_HOME=<HIVE_CLIENT_KIT>
       export HIVE_CONF_DIR=<HIVE_CONF>
       export OLH_HOME=<OLH_HOME>
       export OSCH_HOME=<OSCH_HOME>
       export CP2HADOOP_HOME=<CP2HADOOP_HOME>
       export HS2_HOST_PORT=<HS2_HOST>:<HS2_PORT>
       export HIVE_SESS_VAR_LIST=<semicolon_separated_variable_list>
  7. TNS adminとOracle Walletを使用可能な場合は、次の変数も設定します。
    export WALLET_LOCATION="<WALLET_LOCATION_DIR>"
    export TNS_ADMIN="<TNS_ADMIN_DIR>"
    これらの値は、OHSHセッションの開始時に、OHSHのtnsadminwalletlocationのデフォルトに割り当てられます。それらは、セッションでのすべてのTNSおよびOracle Wallet認証に使用されます。
  8. <OHSH_HOME>/binPATH環境変数に追加します。
  9. OHSHセッションを開始します。
    $ ohsh
    バナーの下に、検出されたキット(OSCH、OLHおよびCP2HADOOP)のリストが表示されます。
    show resourcesコマンドを使用して、使用可能なリソースを表示できます。
    ohsh> show resources
    事前定義された3つのリソース(hadoop0hive0およびbash0)は必ず表示されます。

関連項目:

1.7.2 ジョブ監視を有効にするOHSHの構成

OHSHのジョブが実行されると、そのジョブに関するステータスとその他の情報がバックエンド・データベースに記録されます。OHSHのコマンドラインから情報にアクセスするには、まずデータベースへの接続を構成する必要があります。

構成ステップ

ジョブ履歴を格納するデータベース・インスタンスを有効にするには、conf/smartloader-conf.xml内の次のプロパティを構成します。

  • oracle.hadoop.smartloader.diagnostics.jobhistory.jdbc.driver

    サポートされているバックエンド・データベース・タイプに対応するJDBCドライバを指定します。現在は、MYSQLORACLEが有効な値です。このプロパティが指定されていない場合、ジョブ履歴のコマンドは失敗します。

追加でプロパティを設定する必要があります。これらは、サポートされるバックエンド・データベースとして定義されているデータベース・タイプによって異なります。

  • 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.oratnsnames.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個のジョブが削除されます。整数が指定されていない場合、このコマンドではすべてのジョブが削除されます。

1.8 Oracle XQuery for Hadoopの設定

Oracle XQuery for HadoopをHadoopクラスタにインストールして構成します。Oracle Big Data Applianceを使用している場合、このソフトウェアはすでにインストールされています。

次のトピックでは、このソフトウェアのインストールについて説明します。

1.8.1 ソフトウェア要件

Oracle Big Data Applianceリリース4.3以降は、次の要件を満たしています。ただし、サードパーティのクラスタにOracle XQuery for Hadoopをインストールしている場合は、これらのコンポーネントがインストールされていることを確認する必要があります。

  • Java 8.xまたは7.x

  • CDH (Cloudera's Distribution including Apache Hadoop)またはHDP (Hortonworks Data Platform)の動作保証済リリース

  • Oracle NoSQL Databaseに対する読取りおよび書込みをサポートするOracle NoSQL Database 3.xまたは2.x

  • Oracleデータベースへの表の書込みをサポートするOracle Loader for Hadoop 3.8.0以上

関連項目:

サポートされているCDHおよびHDPのバージョンについては、Oracle Big Data Connectors動作保証マトリックスを参照してください

1.8.2 Oracle XQuery for Hadoopのインストール

次のステップに従って、Oracle XQuery for Hadoopをインストールします。

Oracle XQuery for Hadoopをインストールするには、次の手順を実行します。

  1. oxh-<version>.zipの内容をインストール・ディレクトリに解凍します。

    $ unzip oxh-<version>-cdh-<version>.zip
    Archive:  oxh-<version>-cdh-<version>.zip
       creating: oxh-<version>-cdh<version>/
       creating: oxh-<version>-cdh<version>/lib/
       creating: oxh-<version>-cdh<version>/oozie/
       creating: oxh-<version>-cdh<version>/oozie/lib/
      inflating: oxh-<version>-cdh<version>/lib/ant-launcher.jar
      inflating: oxh-<version>-cdh<version>/lib/ant.jar
         .
         .
         .

    これで、Oracle XQuery for Hadoopを実行できます。

  2. 実行時間を最速にするには、ライブラリをHadoop分散キャッシュにコピーします。

    1. Oracle XQuery for HadoopおよびサードパーティのすべてのライブラリをHDFSディレクトリにコピーします。ファイルのコピーに-exportliboozieオプションを使用する場合は、「Oracle XQuery for Hadoopのオプション」を参照してください。あるいは、HDFSコマンドライン・インタフェースを使用してライブラリを手動でコピーすることもできます。

      Oozieを使用する場合は、すべてのファイルで同じフォルダを使用します。「Oracle XQuery for HadoopアクションのOozieの構成」を参照してください

    2. oracle.hadoop.xquery.lib.shareプロパティを設定するか、コマンドラインで-sharelibオプションを使用して、Hadoop分散キャッシュのディレクトリを指定します。

  3. Oracle Databaseへのデータのロードをサポートするには、次のようにOracle Loader for Hadoopをインストールします。

    1. oraloader-<version>.x86_64.zipの内容をHadoopクラスタまたはHadoopクライアントとして構成したシステムのディレクトリに解凍します。このアーカイブには、アーカイブとREADMEファイルが含まれています。

    2. Hadoopクラスタのディレクトリにアーカイブを解凍します。

      unzip oraloader-<version>-h2.x86_64.zip

      oraloader-<version>-h2というディレクトリが、次のサブディレクトリとexamples.zipファイルともに作成されます。

      doc
      jlib
      lib
      examples.zip

      自分でexample.zipファイルを解凍します。

    3. OLH_HOMEという環境変数を作成して、インストール・ディレクトリに設定します。HADOOP_CLASSPATHは設定しないでください。

  4. Oracle NoSQL Databaseへのデータのロードをサポートするには、インストール後、KVHOMEという環境変数をOracle NoSQL Databaseのインストール・ディレクトリに設定します。

    注意:

    NoSQL Database jarファイルをHADOOP_CLASSPATHに追加しないでください。

  5. Apache Solrによる索引をサポートするには、次のようにします。

    1. HadoopクラスタにSolrがインストールされ、構成されていることを確認します。SolrはCloudera Searchに含まれており、Oracle Big Data Appliance上に自動的にインストールされます。

    2. ドキュメントのロード先となるインストールしたSolrにコレクションを作成します。コレクションを作成するにはsolrctlユーティリティを使用します。

      関連項目:

      solrctlユーティリティに関しては、次のサイトのCloudera Searchユーザー・ガイドを参照してください。

      http://www.cloudera.com/content/cloudera-content/cloudera-docs/Search/latest/Cloudera-Search-User-Guide/csug_solrctl_ref.html

    3. OXH_SOLR_MR_HOME環境変数をsearch-mr-<version>.jarおよびsearch-mr-<version>-job.jarを含むローカル・ディレクトリに設定し、インストールしたSolrを使用するようにOracle XQuery for Hadoopを構成します。次に例を示します。

      $ export OXH_SOLR_MR_HOME="/usr/lib/solr/contrib/mr"

      注意:

      また、Apache Tikaアダプタを使用する前に、Oracle XQuery for Hadoopを構成し、OXH_SOLR_MR_HOME環境変数をローカル・ディレクトリに設定してください。

1.8.3 ファイル・パスのトラブルシューティング

Oracle XQuery for Hadoopで問合せの実行時に独自のライブラリまたはサードパーティのライブラリの検出に失敗した場合は、Oracle XQuery for Hadoopのインストール中に環境変数が正しく設定されたことを最初に確認してください。

注意:

HADOOP_CLASSPATH環境変数または-libjarsコマンドライン・オプションには、OXHライブラリまたはサードパーティ・ライブラリは含まれません。

正しく設定されている場合は、lib/oxh-lib.xmlの編集が必要な可能性があります。このファイルは、Oracle XQuery for HadoopシステムのJARファイルと、Avro、Oracle Loader for HadoopやOracle NoSQL Databaseなどのその他のライブラリの場所を識別します。

必要に応じて、このファイルの環境変数は、${env.variable} (${env.OLH_HOME}など)で参照できます。Hadoopプロパティも${property}(${mapred.output.dir}など)で参照できます。

1.8.4 Oracle XQuery for HadoopアクションのOozieの構成

「Apache Oozieからの問合せの実行」で説明しているように、Apache Oozieワークフローを使用して問合せを実行できます。ソフトウェアは、Oracle Big Data Applianceにすでにインストールおよび構成されています。

その他のHadoopクラスタの場合は、まずOracle XQuery for Hadoopアクションを使用するようにOozieを構成する必要があります。これらは、Oracle XQuery for Hadoopアクションをインストールする一般的なステップです。

  1. Oozie構成を変更します。CDHをサードパーティ・ハードウェアで実行する場合、Cloudera Managerを使用してOozieサーバー構成を変更します。それ以外のHadoopのインストールの場合は、oozie-site.htmを編集します。
    • oracle.hadoop.xquery.oozie.OXHActionExecutoroozie.service.ActionService.executor.ext.classesプロパティの値に追加します。

    • oxh-action-v1.xsdoozie.service.SchemaService.wf.ext.schemasプロパティの値に追加します。

  2. oxh-oozie.jarをOozieサーバーのクラス・パスに追加します。たとえば、CDH5のインストールではoxh-oozie.jarをサーバーの/var/lib/oozieにコピーします。
  3. Oracle XQuery for Hadoopのすべての依存関係を、oxhサブディレクトリのOozie共有ライブラリに追加します。CLI -exportliboozieオプションを使用できます。「Oracle XQuery for Hadoopのオプション」を参照してください。
  4. 変更を反映するためにOozieを再起動します。

具体的なステップは、Oozieがすでにインストールされているか、どのバージョンを使用しているかなどOozieのインストールによって決まります。

1.9 Oracle R Advanced Analytics for Hadoopの設定

Oracle R Advanced Analytics for Hadoop (ORAAH)の概要は、このガイドの第IV部に記載されています。

リリース・ノート、インストール手順、総合的なリファレンス・マニュアルおよび現在のリリースの変更点の一覧は、Oracle Technology Networkで個別に公開されています。

各ORAAHリリースは、複数のOracle Big Data ApplianceリリースおよびOracle以外のプラットフォーム上で稼働するCDHのリリースと互換性があります。

完全なORAAH互換性マトリクスについては、My Oracle Supportのドキュメント2225633.1を参照してください。

1.9.1 Hadoopへのソフトウェアのインストール

Oracle Big Data Applianceでは、追加ソフトウェアのインストールや構成なしにOracle R Advanced Analytics for Hadoopがサポートされます。ただし、サードパーティのHadoopクラスタでOracle R Advanced Analytics for Hadoopを使用するには、必要な環境を作成する必要があります。

1.9.1.1 サードパーティHadoopクラスタのソフトウェア要件

Oracle R Advanced Analytics for HadoopをサポートするサードパーティHadoopクラスタにいくつかのソフトウェア・コンポーネントをインストールする必要があります。

次のコンポーネントをサードパーティ・サーバーにインストールします。

注意:

HadoopクラスタにHADOOP_HOMEを設定しないでください。CDH5はその設定を必要とせず、設定するとOracle R Advanced Analytics for Hadoopに支障をきたします。他のアプリケーションでHADOOP_HOMEを設定する必要がある場合は、/etc/bashrcファイルにHADOOP_LIBEXEC_DIRも設定してください。次に例を示します。

export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec

1.9.1.2 サードパーティHadoopクラスタへのSqoopのインストール

Sqoopには、Hadoopに対するSQLライクなインタフェースがあり、これはJavaベース環境になります。Oracle R Advanced Analytics for Hadoopでは、Oracle DatabaseへのアクセスにSqoopを使用します。

注意:

Oracle DatabaseへのデータのロードにOracle Loader for Hadoopをドライバとして使用する場合もSqoopが必要です。Sqoopは、データベースからHDFSへのデータのコピーや自由形式の問合せのデータベースへの送信などの関数を実行します。このドライバでは、Oracle Loader for Hadoopがサポートしない操作の実行にもSqoopが使用されます。

Oracle Databaseで使用するためにSqoopをインストールして構成するには、次の手順を実行します。

  1. Sqoopがサーバーにインストールされていない場合はインストールします。

    Cloudera's Distribution including Apache Hadoopについては、次のサイトの『CDH Installation Guide』のSqoopインストール手順を参照してください

    http://oracle.cloudera.com/

  2. Oracle Databaseに適したJava Database Connectivity (JDBC)ドライバを次のOracle Technology Networkからダウンロードします
  3. ドライバのJARファイルを$SQOOP_HOME/libにコピーします。これは、/usr/lib/sqoop/libなどのディレクトリです。
  4. SqoopにOracle Databaseへの接続文字列を指定します。
    $ sqoop import --connect jdbc_connection_string

    sqoop import --connect jdbc:oracle:thin@myhost:1521/orclのようになります。

1.9.1.3 サードパーティHadoopクラスタへのHiveのインストール

Hiveは、HiveQLと呼ばれる問合せ言語によって、代替のストレージおよび取得メカニズムをHDFSファイルに提供します。Oracle R Advanced Analytics for HadoopではHiveQLのデータ準備と分析機能が使用されますが、R言語構文も使用できます。

Hiveをインストールするには、次の手順を実行します。

  1. 代理店(ClouderaまたはApache)で提供されるHiveインストール手順に従います。
  2. インストールが適切に機能することを確認します。
  3. $ hive -H 使用方法: hive -d,--define <key=value> hiveコマンドに適用する変数の代入。例: -d A=Bまたは--define A=B . . .
  4. コマンドが失敗したり、出力に警告が表示される場合、Hiveインストールを修正します。

1.9.1.4 HadoopクライアントへのRのインストール

Oracle R Distributionの次のWebサイトからR 2.13.2をダウンロードして、インストール手順を入手できます。

http://oss.oracle.com/ORD/

終了したら、Linuxサーバーへの接続とRの実行に必要な権限がユーザーにあることを確認します。

また、Rユーザーによるアクセスが簡単になるようにRStudioサーバーもインストールできます。RStudioの次のWebサイトを参照してください。

http://rstudio.org/

1.9.1.5 サードパーティHadoopクラスタへのRのインストール

次のWebサイトからOracle R Distribution 3.0.1をダウンロードして、インストール手順を入手できます。

http://www.oracle.com/technetwork/database/database-technologies/r/r-distribution/downloads/index.html

1.9.1.6 サードパーティHadoopクラスタへのORCHパッケージのインストール

ORCHは、Oracle R Advanced Analytics for Hadoopパッケージの名前です。

ORCHパッケージをインストールするには、次の手順を実行します。

  1. クラスタの第1ノードにrootとしてログインします。
  2. サポートするソフトウェアの環境変数を設定します。
    $ export JAVA_HOME="/usr/lib/jdk7"
    $ export R_HOME="/usr/lib64/R"
    $ export SQOOP_HOME "/usr/lib/sqoop"
  3. ダウンロードしたファイルを解凍します。
    $ unzip orch-<version>.zip
    $ unzip orch-linux-x86_64-<version>.zip 
    Archive:  orch-linux-x86_64-<version>.zip
       creating: ORCH<version>/
     extracting: ORCH<version>/ORCH_<version>_R_x86_64-unknown-linux-gnu.tar.gz  
      inflating: ORCH<version>/ORCHcore_<version>_R_x86_64-unknown-linux-gnu.tar.gz  
         .
         .
         .
  4. 新しいディレクトリに変更します。
    $ cd ORCH<version>
  5. 次の順序でパッケージをインストールします。
    R --vanilla CMD INSTALL OREbase_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    R --vanilla CMD INSTALL OREstats_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    R --vanilla CMD INSTALL OREmodels_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    R --vanilla CMD INSTALL OREserver_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    R --vanilla CMD INSTALL ORCHcore_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    R --vanilla CMD INSTALL ORCHstats_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    R --vanilla CMD INSTALL ORCH_<version>_R_x86_64-unknown-linux-gnu.tar.gz
  6. 次のパッケージは、クラスタのその他すべてのノードにもインストールする必要があります。
    • OREbase

    • OREmodels

    • OREserver

    • OREstats

    次の例では、dcliユーティリティ(Oracle Big Data Applianceでは使用可能で、サードパーティ・クラスタでは使用不可)を使用して、OREserverパッケージをコピーおよびインストールします。

    $ dcli -C -f OREserver_<version>_R_x86_64-unknown-linux-gnu.tar.gz -d /tmp/ OREserver_<version>_R_x86_64-unknown-linux-gnu.tar.gz
    
    $ dcli -C " R --vanilla CMD INSTALL /tmp/OREserver_<version>_R_x86_64-unknown-linux-gnu.tar.gz"

1.9.2 追加のRパッケージのインストール

Hadoopクラスタでは、すべてのノードにlibpng-develがインストールされている必要があります。コモディティ・ハードウェア上で稼働するクラスタを使用する場合も基本手順は同じです。ただし、dcliユーティリティを使用してコマンドをすべてのノード間に複製することはできません。dcliユーティリティの構文は、『Oracle Big Data Applianceオーナーズ・ガイド』を参照してください。

libpng-develをインストールするには、次の手順を実行します。

  1. Hadoopクラスタの任意のノードにrootとしてログインします。

  2. libpng-develがすでにインストールされているかどうかを確認します。

    # dcli rpm -qi libpng-devel
    bda1node01: package libpng-devel is not installed
    bda1node02: package libpng-devel is not installed
         .
         .
         .

    すべてのサーバーにパッケージがインストール済の場合、この手順は省略できます。

  3. ファイアウォールの外側にプロキシ・サーバー経由で接続する必要がある場合は、HTTP_PROXY環境変数を設定します。この例では、dcliを使用します。これは、Oracle Big Data Applianceでのみ使用可能です。

    # dcli export HTTP_PROXY="http://proxy.example.com"
  4. yumディレクトリに移動します。

    # cd /etc/yum.repos.d
  5. 使用するLinuxのバージョンに適した構成ファイルをダウンロードして構成します。

    Enterprise Linux 5 (EL5)の場合:

    1. yum構成ファイルをダウンロードします。

      # wget http://public-yum.oracle.com/public-yum-el5.repo
    2. テキスト・エディタでpublic-yum-el5.repoを開き、次のように変更します。

      el5_latestの下で、enabled=1と設定します。

      el5_addonsの下で、enabled=1と設定します。

    3. 変更を保存し、終了します。

    4. 他のOracle Big Data Applianceサーバーにファイルをコピーします。

      # dcli -d /etc/yum.repos.d -f public-yum-el5.repo

    Oracle Linux 6 (OL6)の場合:

    1. yum構成ファイルをダウンロードします。

      # wget http://public-yum.oracle.com/public-yum-ol6.repo
    2. テキスト・エディタでpublic-yum-ol6.repoを開き、次のように変更します。

      ol6_latestの下で、enabled=1と設定します。

      ol6_addonsの下で、enabled=1と設定します。

    3. 変更を保存し、終了します。

    4. 他のOracle Big Data Applianceサーバーにファイルをコピーします。

      # dcli -d /etc/yum.repos.d -f public-yum-ol6.repo
  6. すべてのサーバーにパッケージをインストールします。

    # dcli yum -y install libpng-devel
    bda1node01: Loaded plugins: rhnplugin, security
    bda1node01: Repository 'bda' is missing name in configuration, using id
    bda1node01: This system is not registered with ULN.
    bda1node01: ULN support will be disabled.
    bda1node01: http://bda1node01-master.abcd.com/bda/repodata/repomd.xml:
    bda1node01: [Errno 14] HTTP Error 502: notresolvable
    bda1node01: Trying other mirror.
         .
         .
         .
    bda1node01: Running Transaction
    bda1node01: Installing     : libpng-devel                    1/2
    bda1node01: Installing     : libpng-devel                    2/2
     
    bda1node01: Installed:
    bda1node01: libpng-devel.i386 2:1.2.10-17.el5_8  ibpng-devel.x86_64 2:1.2.10-17.el5_8
     
    bda1node01: Complete!
    bda1node02: Loaded plugins: rhnplugin, security
         .
         .
         .
  7. すべてのサーバーでインストールが正常に終了したことを確認します。

    # dcli rpm -qi libpng-devel
    bda1node01: Name        : libpng-devel Relocations: (not relocatable)
    bda1node01: Version     : 1.2.10       Vendor: Oracle America
    bda1node01: Release     : 17.el5_8      Build Date: Wed 25 Apr 2012 06:51:15 AM PDT
    bda1node01: Install Date: Tue 05 Feb 2013 11:41:14 AM PST  Build Host: ca-build56.abcd.com
    bda1node01: Group       : Development/Libraries  Source RPM: libpng-1.2.10-17.el5_8.src.rpm
    bda1node01: Size        : 482483                 License: zlib
    bda1node01: Signature   : DSA/SHA1, Wed 25 Apr 2012 06:51:41 AM PDT, Key ID 66ced3de1e5e0159
    bda1node01: URL         : http://www.libpng.org/pub/png/
    bda1node01: Summary     : Development tools for programs to manipulate PNG image format files.
    bda1node01: Description :
    bda1node01: The libpng-devel package contains the header files and static
    bda1node01: libraries necessary for developing programs using the PNG (Portable
    bda1node01: Network Graphics) library.
         .
         .
         .

1.9.3 Rユーザーへのリモート・クライアント・アクセスの提供

Rユーザーは、Hadoopクラスタで自身のプログラムをMapReduceジョブとして実行しますが、通常、そのプラットフォームでの個別アカウントは保有していません。かわりに、外部Linuxサーバーでリモート・アクセスが提供されます。

1.9.3.1 リモート・クライアント・アクセスのソフトウェア要件

HadoopクラスタへのアクセスをRユーザーに提供するには、次のコンポーネントをLinuxサーバーにインストールします。

  • Hadoopクラスタと同じバージョンのHadoop。インストールされていない場合、予想外の問題や障害が生じることがあります。

  • Hadoopクラスタと同じバージョンのSqoop。Oracle Database内外でのデータのコピーをサポートする場合にのみ必要です。

  • Mahout。Mahout ALS-WSアルゴリズムでorch.ls関数を使用する場合にのみ必要です。

  • Hadoopクラスタと同じバージョンのJava Development Kit (JDK)。

  • Oracle Rディストリビューション3.0.1とすべてのベース・ライブラリ。

  • ORCH Rパッケージ。

データベース・オブジェクトにアクセスできるようにするには、Oracle DatabaseへのOracle Advanced Analyticsオプションが必要です。その後、Hadoopクライアントにこの追加コンポーネントをインストールできます。

  • Oracle R Enterpriseクライアントのパッケージ。

1.9.3.2 Hadoopクライアントとしてのサーバーの構成

クライアントにHadoopをインストールし、HDFSクライアントを使用する場合はHadoopの最小限の構成を行う必要があります。

クライアント・システムにHadoopをインストールして構成するには、次の手順を実行します。

  1. クライアント・システムにCDH5またはApache Hadoop 2.2.0をインストールして構成します。このシステムがOracle Databaseのホストになります。Oracle Big Data Applianceを使用する場合、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』のリモート・クライアント・アクセスを提供するための手順を完了します。それ以外の場合は、代理店(ClouderaまたはApache)が提供するインストール手順に従います。
  2. Rユーザーでクライアント・システムにログインします。
  3. Bashシェルを開き、次のHadoopファイル・システム・コマンドを入力します。
    $HADOOP_HOME/bin/hdfs dfs -ls /user
  4. ファイルのリストが表示されたら終了です。表示されない場合、Hadoopクラスタが稼働していることを確認します。それでも問題が修正されない場合は、クライアントHadoopのインストールをデバッグする必要があります。

1.9.3.3 HadoopクライアントへのSqoopのインストール

Sqoopをインストールして構成する場合、「サードパーティHadoopクラスタへのSqoopのインストール」で説明する手順と同じ手順をクライアント・システムで完了します。

1.9.3.4 HadoopクライアントへのRのインストール

Oracle R Distributionの次のWebサイトからR 2.13.2をダウンロードして、インストール手順を入手できます。

http://oss.oracle.com/ORD/

終了したら、Linuxサーバーへの接続とRの実行に必要な権限がユーザーにあることを確認します。

また、Rユーザーによるアクセスが簡単になるようにRStudioサーバーもインストールできます。RStudioの次のWebサイトを参照してください。

http://rstudio.org/

1.9.3.5 HadoopクライアントへのORCHパッケージのインストール

ORCHをHadoopクライアント・システムにインストールするには、次の手順を実行します。

  1. ORCHパッケージをダウンロードし、クライアント・システムに解凍します。
  2. インストール・ディレクトリに移動します。
  3. 次のようにクライアント・スクリプトを実行します。
    # ./install-client.sh

1.9.3.6 Oracle R Enterpriseクライアントのパッケージ(オプション)のインストール

Rを使用したOracle Databaseへのフル・アクセスをサポートするには、Oracle R Enterpriseのクライアントのパッケージをインストールします。このパッケージがない場合、Oracle R Advanced Analytics for Hadoopでは、Oracle R Enterpriseで提供される高度な統計アルゴリズムを利用できません。

関連項目:

RおよびOracle R Enterpriseのインストールの詳細は、Oracle R Enterpriseユーザーズ・ガイド

1.10 Oracle Data Integrator

Oracle Data Integratorを設定および使用するための手順は、Oracle Fusion Middlewareビッグ・データとOracle Data Integratorの統合を参照してください。

1.11 Oracle Datasource for Apache Hadoopの設定

ソフトウェア要件

Oracle Datasource for Apache Hadoopには、次のソフトウェアが必要です。

  • Oracle Database 12c、11.2.0.4、またはOracle JDBCドライバ12cで問合せ可能な以前のOracle Databaseリリースを実行するターゲット・データベース・システム。

    Oracle Database 11.2.0.4に加え、それ以前のOracle Databaseリリースでも動作する可能性があります。ただし、一部のSPLITパターンはOracle Database 12cに対する依存関係があるため、Oracle Databaseの以前のリリースへの問合せに使用する場合、並列hadoopジョブの分割を正確に行えない可能性があります。

  • Cloudera's Distribution including Apache Hadoop version 5 (CDH5)、Hortonworks Data Platform (HDP) 2.x、またはApache Hadoop 2.2.0から2.6.0。

  • Apache Hive 0.13.0、0.13.1または1.1.0 (Oracle Database表のデータを問い合せるため)。

Oracle Datasource for Apache Hadoopのインストール

HADOOP_CLASSPATHを、Hiveクライアントを実行しているHadoopノードに$OD4H_HOME/jlib/*を含めるように設定します。これがHADOOP_CLASSPATHの最初にリストされていることを確認してください。

$OD4H_HOME/jlib内のOD4H jarがOD4Hを使用してHiveコマンドにアクセスできるようにします。これは次のいずれかの方法で実行できます。

1. HiveServer 2を構成し、jarをクラスタ全体で使用できるようにします。これにより、HiveクライアントBeelineと他のツール(SQL Developerなど)がOD4Hと連携できるようになります。

2. 特定のセッションに構成を分離するには、jarを手動で追加します。この方法は、OD4Hを使用する状況でOD4H jarが他のアプリケーションと干渉しないようにする場合に使用できます。

Hive CLIへのjarファイルの追加

jarファイルをHive CLIセッションに対してローカルに存在できるようにするには、次のようにHiveを使用してjarファイルを追加します。

$hive

hive> Add jar <jar name>

hive> Add jar <jar name>

1.11.1 HiveServer2の構成

HiveServer2を構成するステップは次のとおりです。

1. Cloudera Managerにログインします

2. 「Hive」をクリックします。

図1-3 Cloudera Manager

3. 「Status Summary」で、「HiveServer2」をクリックします。

4. 「Configuration」をクリックします。

5. 「Service Configuration」をクリックします。

6. 検索ボックスに「AUX」と入力します。プロパティ「サービス全体/詳細」の下で、HiveServer2に追加するjarを含むディレクトリを追加します。

7. Hiveを再起動します。

Hive CLIへのJarの追加

jarをHive CLIセッションに対してローカルで有効にするには、次のようにHive CLIを使用してjarを追加します。

$ hive

hive> Add jar <jar name>

hive> Add jar <jar name>



脚注の説明

脚注1:

『Hadoop: The Definitive Guide, Third Edition』Tom White著(O'Reilly Media Inc., 2012, 978-1449311520)。