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)およびその関連情報センター
エンタープライズでは、複数のソースから生じる大量のデータを参照します。分析した場合にエンタープライズにとってきわめて大きな価値となる膨大な量のデータのほんの一例として、Webログのクリックストリーム・データ、GPS追跡情報、小売事業のデータ、センサー・データおよびマルチメディア・ストリームなどがあります。生のデータ・フィードから取得する非構造化および半構造化情報は、それ自体ほとんど価値はありません。実際に価値のある情報を抽出するには、データを処理する必要があります。処理されたデータは、その後データベースに格納して管理できます。このデータをデータベースの構造化データと一緒に分析することで、新たな理解が得られ、実質的なビジネス利益につながります。
MapReduceは、分散システムでデータを処理するための並列プログラミング・モデルです。大量のデータを迅速に処理し、線形的に拡張できます。特に、非構造化データおよび半構造化データのバッチ処理のメカニズムとして効果的です。MapReduceは、比較的下位の操作を一連のキーと値を通じて計算に抽象化します。
MapReduceジョブを簡単に定義すると、2つのフェーズ(マップ・フェーズとリデュース・フェーズ)が連続的に交代する操作になります。各マップ・フェーズは、入力データの各レコードに変換機能を適用して、キーと値のペアで表現される一連のレコードを作成します。マップ・フェーズからの出力は、リデュース・フェーズへの入力になります。リデュース・フェーズでは、マップ出力レコードはキーと値のセットにソートされるため、セット内のすべてのレコードのキーの値が同じになります。リデューサ関数がセット内のすべてのレコードに適用され、一連の出力レコードがキーと値のペアで作成されます。マップ・フェーズは、各レコードに対して論理的に並列で実行され、リデュース・フェーズは、すべてのキーの値に対して並列で実行されます。
注意:
Oracle Big Data Connectors 3.0以降は、MapReduceのYet Another Resource Negotiator (YARN)実装をサポートしています。
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サイトを参照してください
Apache Hadoopの詳細は、次のWebサイトを参照してください
Oracle Big Data Connectorsは、Oracle Technology NetworkまたはOracle Software Delivery Cloudからダウンロードできます。どちらのサイトも複数のブラウザに対応しています。
Oracle Technology Networkからダウンロードするには、次の手順を実行します。
http://www.oracle.com/technetwork/bdc/big-data-connectors/downloads/index.html
各コネクタの名前をクリックして、インストール・ファイルを含むzipファイルをダウンロードします。
Oracle Software Delivery Cloudからダウンロードするには、次の手順を実行します。
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構成生成ユーティリティの使用を参照してください。)
この項の内容は次のとおりです。
Oracle SQL Connector for HDFSには、次のソフトウェアが必要です。
Hadoopクラスタの場合:
このソフトウェアは、Oracle Big Data Applianceにすでにインストールされています。
Oracle DatabaseシステムおよびHadoopクライアント・システムの場合:
Oracle Database 12c (12.2.0.1および12.1.0.2)、Oracle Database 11gリリース2 (11.2.0.4以上)。
Hadoopクラスタと同じバージョンのHadoop: CDH5、またはHortonworks Data Platform 2.4.0および2.5.0。
Kerberosを使用してセキュアなHadoopクラスタを構成している場合は、データベース・システムのHadoopクライアントを、セキュアなクラスタにアクセスするように設定する必要があります。「セキュアなHadoopクラスタでのOracle SQL Connector for HDFSの使用」を参照してください。
Hadoopクラスタと同じバージョンのJDK。
注意:
Oracle SQL Connector for HDFSは、データベース・システムのOSプラットフォーム上のHadoopクライアントを必要とします。これはLinuxシステムでは単純です。Linux以外のプラットフォームでは、Hadoopクライアントのtarballをインストールする必要があります。Oracle Blogの投稿Connecting Hadoop with Oracleを参照してください。詳細は、My Oracle Supportの次のドキュメントを参照してください。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クライアントをダウンロードしてインストールします。たとえば、Oracle DatabaseシステムでCDHシステム(Oracle Big Data Applianceではないシステム)に接続できるHadoopクライアントが必要な場合は、次の手順を使用して適切なCDHクライアントをインストールし、Kerberosで保護された環境または保護されていない環境で使用するために構成して、Hadoopクラスタ上のHDFSへのアクセスを検証できます。
Oracle Databaseが稼働しているデータベース・システムにログインします。
このアカウントは、選択したインストール・パスへの書込み権限を持っている必要があります。通常は、管理ユーザー・アカウントで十分です。また、このアカウントはCloudera Managerへのログイン・アクセス権も持っている必要があります。
CDHファイルをインストールしてクライアントを構成します。
tarballをCloudera tarballのダウンロード・ページ(http://archive.cloudera.com/cdh5/cdh/5/)からダウンロードします
注意:
CDHクライアントのバージョンは、HadoopシステムのCDHバージョンと互換性がある必要があります。ファイル名のバージョン番号セグメント(hadoop-2.6.0-cdh5.8.0.tar.gzなど)が、Hadoopクラスタのバージョンと一致していることを確認してください。ダウンロード・ページで必要なtarballはこれだけです。tarballをデータベース・システムの任意の永続パスにコピーして、tarballからファイルを抽出します。
$ tar xzf hadoop-<version>.tar.gz
HADOOP_PREFIX環境変数をこのパスに設定し、PATH変数にHADOOP_PREFIX/binを追加します。
$ export HADOOP_PREFIX=<install location> $ export PATH=${HADOOP_PREFIX}/bin:${PATH}
Cloudera Managerで‘hdfs
’サービスをクリックし、‘Download Client Configuration
’アクションを選択して構成ファイルをダウンロードします。
クライアント構成ファイルをHADOOP_PREFIX/confに抽出します。
$mkdir ${HADOOP_PREFIX}/conf unzip hdfs-clientconfig.zip -d /tmp cp /tmp/hadoop-conf/* ${HADOOP_PREFIX}/conf
HADOOP_CONF_DIR環境変数を、クライアント構成ファイルをインストールしたパスに設定することもできます。(これはオプションです。)
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/conf
JAVA_HOMEが、Hadoopインストールで必要とされるバージョンのJDKインストールを指していることを確認します。
クラスタがKerberosで保護されている場合は、Kerberos認証を許可するようにOracleシステムを構成します。(「セキュアなHadoopクラスタでのOracle SQL Connector for HDFSの使用」を参照してください。)
Oracle Databaseアカウントを使用して、Oracle Databaseが稼働しているシステムにログオンします。
Bashシェルを開き、次のコマンドを入力します。
hdfs dfs -ls /user
Hadoopクラスタ上で直接コマンドを実行する場合と同じディレクトリ・リストが表示されます。表示されない場合、最初にHadoopクラスタが稼働していることを確認します。問題が続く場合、Oracle DatabaseからHadoopクラスタ・ファイル・システムにアクセスできるようにHadoopクライアント構成を修正する必要があります。
Oracle RACシステムの場合、各Oracle Databaseインスタンスに対してこの手順を繰り返します。
HadoopクライアントをKerberosで保護されたクラスタと併用するように構成する場合は、Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイドのolink:BIGUG-GUID-72E0B3C1-4871-44AB-A2BE-A0AC8E25BE72を参照してください。
Oracle DatabaseシステムにOracle SQL Connector for HDFSをインストールするには、次の手順を実行します。
データベース・システム上のこの必須インストールの他に、互換Hadoopクライアントとして構成されたどのシステムにもOracle SQL Connector for HDFSをインストールできます。こうすることで、そのノードからOracle Database外部表を作成できるようになります。
Oracle DatabaseシステムにOracle SQL Connector for HDFSをインストールするには、次の手順を実行します。
Oracle Databaseが稼働するシステムのディレクトリにzipファイルをダウンロードします。
oraosch-
<version>
.zip
の内容を解凍します。
$ unzip oraosch-<version>.zip
Archive: oraosch-<version>.zip
extracting: orahdfs-<version>.zip
inflating: README.txt
orahdfs-
<version>
.zip
を永続ディレクトリに解凍します。
$ unzip orahdfs-<version>.zip
unzip orahdfs-<version>.zip
Archive: orahdfs-<version>.zip
creating: orahdfs-<version>/
creating: orahdfs-<version>/log/
creating: orahdfs-<version>/examples/
creating: orahdfs-<version>/examples/sql/
inflating: orahdfs-<version>/examples/sql/mkhive_unionall_view.sql
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のようになります。
orahdfs-<version>/bin/hdfs_stream
Bashシェル・スクリプトをテキスト・エディタで開き、必要に応じて、スクリプトのコメントに示される変更を行います。
hdfs_streamスクリプトには環境変数の設定は継承されないため、Oracle SQL Connector for HDFSで環境変数が必要な場合はこのスクリプトに設定します。
PATH
: hadoop
スクリプトが/usr/bin:bin
(hdfs_stream
に初期設定されているパス)に存在しない場合、Hadoopのbinディレクトリ(/usr/lib/hadoop/binなど)を追加します。
JAVA_HOME
: HadoopによってJavaが検出されない場合、この変数をJavaのインストール・ディレクトリに設定します(/usr/bin/java
など)。
各環境変数の詳細は、スクリプトのコメントを参照してください。
hdfs_stream
スクリプトは、Oracle SQL Connector for HDFSで作成されたOracle Database外部表のプリプロセッサです。
Kerberosを使用してクラスタを保護している場合は、Kerberosチケットを取得します。
> kinit
> password
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ホーム・ディレクトリを表します。
Oracle RACシステムの場合、同じパスの場所を使用し、各Oracleインスタンスに対して前述の手順を繰り返します。
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';
Hive表へのアクセスをサポートするには、次の手順を実行します。
システムがHiveクライアントして構成されていることを確認します。
HiveのJARファイルとconfディレクトリをHADOOP_CLASSPATH
環境変数に追加します。各種のHadoop製品間でJARが競合しないようにするため、HADOOP_CLASSPATH
は、グローバルに変更するのではなく、ローカル・シェル初期化スクリプトに設定することをお薦めします。複数のJARファイル・パスが
HADOOP_CLASSPATH
にある場合は、現在の製品のJARを最初にリストしてください。
解凍したファイルの構造は、例1-1のようになります。
図1-1に、データの流れとコンポーネントの場所を示します。
図1-1 HDFSおよびデータ・ポンプ・ファイルをサポートするOracle SQL Connector for HDFSのインストール
例1-1 orahdfsディレクトリの構造
orahdfs-<version>
bin/
hdfs_stream
hdfs_stream.cmd
doc/
README.txt
examples/
sql/
mkhive_unionall_view.sql
jlib/
ojdbc7.jar
oraloader.jar
ora-hadoop-common.jar
oraclepki.jar
orahdfs.jar
osdt_cert.jar
osdt_core.jar
log/
CREATE SESSION
CREATE VIEW
Oracle SQL Connector for HDFSのインストール時に作成されるOSCH_BIN_PATH
ディレクトリに対するREAD
およびEXECUTE
。書込みアクセス権は誰にも付与しないでください。Oracle SQL Connector for HDFSを使用する予定のユーザーにのみEXECUTE
を付与します。
外部表を格納するデータベース・ディレクトリに対するREAD
とWRITE
、またはCREATE ANY DIRECTORY
システム権限。Oracle RACシステムの場合、このディレクトリは、すべてのOracleインスタンスでアクセスできる共有ディスク上に存在する必要があります。
データをOracleデータベースにコピーする表領域と割当て。オプション。
例1-2に、これらの権限を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;
HDFSおよびデータ・ポンプ形式ファイルの外部表を作成する場合、ユーザーは、Oracle DatabaseシステムまたはHadoopクライアントとして設定された別のシステムにログインできます。
これらのシステムのアカウントは、他のオペレーティング・システム・ユーザーの場合と同様に設定できます。HADOOP_CLASSPATH
にpath
/orahdfs-<version>/jlib/*
を含める必要があります。この設定は、このインストール手順の一部としてシェルのプロファイルに追加することも、ユーザーが設定することもできます。次の例では、BashシェルのHADOOP_CLASSPATH
を変更します。ここでは、Oracle SQL Connector for HDFSは/usr/bin
にインストールされています。
export HADOOP_CLASSPATH="/etc/orahdfs-<version>/jlib/*:$HADOOP_CLASSPATH"
ユーザーが、Oracle SQL Connector for HDFSを使用して作成された外部表にアクセスする場合、外部表は、Oracleデータベースが稼働しているシステムで実行されているHadoopクライアントのように動作します。また、Oracleのインストール先のオペレーティング・システム・ユーザーのIDが使用されます。
セキュアなHadoopクラスタでは、Kerberosがインストール済で、クライアント・アクティビティを認証するように構成されています。Oracle SQL Connector for HDFSをKerberosで保護されたHadoopクラスタとともに使用するように構成する必要があります。
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セキュリティが構成オプションとして自動的に構成されます。セキュアなOracle Big Data Applianceクラスタに対するクライアント・システムの設定の詳細は、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』を参照してください。
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をインストールするシステムには、Oracle Clientが必要とするリソースと同じリソースが必要です。Oracle Database 12c リリース1 (12.1)におけるOracle Clientの要件に関する詳細は、Oracle Database Clientインストレーション・ガイドを参照してください。
Oracle Loader for Hadoopをインストールするには、次の手順を実行します。
一般的なインストールでは、Oracle Loader for HadoopはHadoopクラスタまたはHadoopクライアントからOracle Databaseシステムに接続できます。接続できない場合(複数のシステムが異なるネットワーク上にある場合など)は、Oracle Loader for Hadoopをオフライン・データベース・モードで使用できます。「操作モードの概要」を参照してください。
オフライン・データベース・モードをサポートするには、2つのシステムにOracle Loader for Hadoopをインストールする必要があります。
HadoopクラスタまたはHadoopクライアントとして設定されているシステム(「Oracle Loader for Hadoopのインストール」を参照)。
Oracle DatabaseシステムまたはOracle Databaseへのネットワーク・アクセスを備えたシステム(次の手順を参照)。
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セキュリティが構成オプションとして自動的に構成されます。セキュアなOracle Big Data Applianceクラスタに対するクライアント・システムの設定の詳細は、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』を参照してください。
Oracle Shell for Hadoop Loaders (OHSH)は、Big Data Connectorsと統合されます。OHSHは、Oracle Loader for Hadoop (OLH)およびOracle SQL Connector for Hadoop Distributed File System (OSCH)を使用して、HadoopおよびHiveからOracle表にコンテンツをコピーするために使用できる一連の宣言的コマンドを提供しています。Oracle Databaseの表からHive表にコンテンツをコピーするために、Oracle Big Data SQLにも統合されます。
前提条件
Oracle Shell for Hadoop Loaders (OHSH)は、Hadoopクライアント、エッジ・ノードもしくはHadoopノード上で、またはOracle Databaseサーバー上でOLHおよびOSCHと連携します。
OHSHでは、Copy To HadoopまたはOracle Big Data Connectorsをインストールする必要があります。
表1-1に、サポートされている様々なプラットフォームでデフォルトでは示されていない、OHSHの依存関係を示します。これらが存在しない場合は追加する必要があります。
表1-1 OHSHを実行するための前提条件
環境 | OHSHの前提条件 |
---|---|
HadoopクライアントおよびHadoopノード |
|
Oracle Databaseサーバー |
|
OHSHは、前述のどの環境でも設定できます(Hadoop client、Hadoop nodeまたはOracle Databaseサーバー)。これらの環境のいずれか1つでソフトウェアをインストール必要があります。
Oracle Shell for Hadoop Loadersのインストール
Oracle Shell for Hadoop Loadersを設定するには、次の手順に従います。この手順は、Hadoopクライアント、エッジ・ノードもしくはHadoopノード上、またはOracle Databaseサーバー上での設定に適用されます。
ohsh-<version>.zipの内容をデータベース・サーバーのディレクトリに抽出します。
抽出すると、ohsh-<version>というディレクトリがREADME.txtファイルと次のサブディレクトリとともに作成されます。
README.txt /bin /conf /doc /examples /jlib
README.txtに記載された手順に従い、Oracle Shell for Hadoop Loadersを構成します。
Oracle XQuery for HadoopをHadoopクラスタにインストールして構成します。Oracle Big Data Applianceを使用している場合、このソフトウェアはすでにインストールされています。
次のトピックでは、このソフトウェアのインストールについて説明します。
Oracle Big Data Applianceリリース4.3以降は、次の要件を満たしています。ただし、サードパーティのクラスタにOracle XQuery for Hadoopをインストールしている場合は、これらのコンポーネントがインストールされていることを確認する必要があります。
Java 8.x、7.xまたは6.x。
Cloudera's Distribution including Apache Hadoopバージョン4.1.2以降(CDH 5.xを含みます)
Oracle NoSQL Databaseに対する読取りおよび書込みをサポートするOracle NoSQL Database 3.xまたは2.x
Oracleデータベースへの表の書込みをサポートするOracle Loader for Hadoop 3.8.0
次の手順に従って、Oracle XQuery for Hadoopをインストールします。
Oracle XQuery for Hadoopをインストールするには、次の手順を実行します。
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を実行できます。
実行時間を最速にするには、ライブラリをHadoop分散キャッシュにコピーします。
Oracle XQuery for HadoopおよびサードパーティのすべてのライブラリをHDFSディレクトリにコピーします。ファイルのコピーに-exportliboozie
オプションを使用する場合は、「Oracle XQuery for Hadoopのオプション」を参照してください。あるいは、HDFSコマンドライン・インタフェースを使用してライブラリを手動でコピーすることもできます。
Oozieを使用する場合は、すべてのファイルで同じフォルダを使用します。「Oracle XQuery for HadoopアクションのOozieの構成」を参照してください
oracle.hadoop.xquery.lib.share
プロパティを設定するか、コマンドラインで-sharelib
オプションを使用して、Hadoop分散キャッシュのディレクトリを指定します。
Oracle Databaseへのデータのロードをサポートするには、次のようにOracle Loader for Hadoopをインストールします。
oraloader-
<version>
.x86_64.zip
の内容をHadoopクラスタまたはHadoopクライアントとして構成したシステムのディレクトリに解凍します。このアーカイブには、アーカイブとREADME
ファイルが含まれています。
Hadoopクラスタのディレクトリにアーカイブを解凍します。
unzip oraloader-<version>-h2.x86_64.zip
oraloader-
<version>
-h2
というディレクトリが次のサブディレクトリとともに作成されます。
doc jlib lib examples
OLH_HOME
という環境変数を作成して、インストール・ディレクトリに設定します。HADOOP_CLASSPATH
は設定しないでください。
Oracle NoSQL Databaseへのデータのロードをサポートするには、インストール後、KVHOME
という環境変数をOracle NoSQL Databaseのインストール・ディレクトリに設定します。
注意:
NoSQL Database jarファイルをHADOOP_CLASSPATH
に追加しないでください。
Apache Solrによる索引をサポートするには、次のようにします。
HadoopクラスタにSolrがインストールされ、構成されていることを確認します。SolrはCloudera Searchに含まれており、Oracle Big Data Appliance上に自動的にインストールされます。
ドキュメントのロード先となるインストールしたSolrにコレクションを作成します。コレクションを作成するにはsolrctl
ユーティリティを使用します。
関連項目:
solrctl
ユーティリティに関しては、次のサイトのCloudera Searchユーザー・ガイドを参照してください。
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
環境変数をローカル・ディレクトリに設定してください。
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}
など)で参照できます。
「Apache Oozieからの問合せの実行」で説明しているように、Apache Oozieワークフローを使用して問合せを実行できます。ソフトウェアは、Oracle Big Data Applianceにすでにインストールおよび構成されています。
その他のHadoopクラスタの場合は、まずOracle XQuery for Hadoopアクションを使用するようにOozieを構成する必要があります。これらは、Oracle XQuery for Hadoopアクションをインストールする一般的な手順です。
具体的な手順は、Oozieがすでにインストールされているか、どのバージョンを使用しているかなどOozieのインストールによって決まります。
Oracle R Advanced Analytics for Hadoop (ORAAH)の概要は、このガイドの第IV部に記載されています。
リリース・ノート、インストール手順、総合的なリファレンス・マニュアルおよび現在のリリースの変更点の一覧は、Oracle Technology Networkで個別に公開されています。
Oracle Big Data Applianceでは、追加ソフトウェアのインストールや構成なしにOracle R Advanced Analytics for Hadoopがサポートされます。ただし、サードパーティのHadoopクラスタでOracle R Advanced Analytics for Hadoopを使用するには、必要な環境を作成する必要があります。
Oracle R Advanced Analytics for HadoopをサポートするサードパーティHadoopクラスタにいくつかのソフトウェア・コンポーネントをインストールする必要があります。
次のコンポーネントをサードパーティ・サーバーにインストールします。
Cloudera's Distribution including Apache Hadoopバージョン4 (CDH5)またはApache Hadoop 0.20.2+923.479以上。
代理店で提供される手順を完了します。
Apache Hive 0.10.0+67以上
「サードパーティHadoopクラスタへのHiveのインストール」を参照してください。
Oracle Databaseに接続する関数を実行するためのSqoop 1.3.0+5.95以上。Oracle R Advanced Analytics for Hadoopでは、Sqoopをインストールまたはロードする必要はありません。
「サードパーティHadoopクラスタへのSqoopのインストール」を参照してください。
Mahout (orch_lmf_mahout_als.R
を実行する場合)。
Java Virtual Machine (JVM)、できればJava HotSpot Virtual Machine 6。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
HadoopクラスタのすべてのノードにOracle R Distribution 3.0.1とすべてのベース・ライブラリ。
「サードパーティHadoopクラスタへのRのインストール」を参照してください。
各RエンジンのORCHパッケージ。Hadoopクラスタの各ノードに必要です。
「サードパーティHadoopクラスタへのORCHパッケージのインストール」を参照してください。
OLHドライバ(オプション)をサポートするOracle Loader for Hadoop。
「Oracle Loader for Hadoopの設定」を参照してください。
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をインストールして構成するには、次の手順を実行します。
Hiveは、HiveQLと呼ばれる問合せ言語によって、代替のストレージおよび取得メカニズムをHDFSファイルに提供します。Oracle R Advanced Analytics for HadoopではHiveQLのデータ準備と分析機能が使用されますが、R言語構文も使用できます。
Hiveをインストールするには、次の手順を実行します。
Hadoopクラスタでは、すべてのノードにlibpng-devel
がインストールされている必要があります。コモディティ・ハードウェア上で稼働するクラスタを使用する場合も基本手順は同じです。ただし、dcli
ユーティリティを使用してコマンドをすべてのノード間に複製することはできません。dcli
ユーティリティの構文は、『Oracle Big Data Applianceオーナーズ・ガイド』を参照してください。
libpng-develをインストールするには、次の手順を実行します。
Hadoopクラスタの任意のノードにroot
としてログインします。
libpng-devel
がすでにインストールされているかどうかを確認します。
# dcli rpm -qi libpng-devel
bda1node01: package libpng-devel is not installed
bda1node02: package libpng-devel is not installed
.
.
.
すべてのサーバーにパッケージがインストール済の場合、この手順は省略できます。
ファイアウォールの外側にプロキシ・サーバー経由で接続する必要がある場合は、HTTP_PROXY
環境変数を設定します。この例では、dcliを使用します。これは、Oracle Big Data Applianceでのみ使用可能です。
# dcli export HTTP_PROXY="http://proxy.example.com"
yum
ディレクトリに移動します。
# cd /etc/yum.repos.d
使用するLinuxのバージョンに適した構成ファイルをダウンロードして構成します。
Enterprise Linux 5 (EL5)の場合:
yum構成ファイルをダウンロードします。
# wget http://public-yum.oracle.com/public-yum-el5.repo
テキスト・エディタでpublic-yum-el5.repo
を開き、次のように変更します。
el5_latest
の下で、enabled=1
と設定します。
el5_addons
の下で、enabled=1
と設定します。
変更を保存し、終了します。
他のOracle Big Data Applianceサーバーにファイルをコピーします。
# dcli -d /etc/yum.repos.d -f public-yum-el5.repo
Oracle Linux 6 (OL6)の場合:
yum構成ファイルをダウンロードします。
# wget http://public-yum.oracle.com/public-yum-ol6.repo
テキスト・エディタでpublic-yum-ol6.repo
を開き、次のように変更します。
ol6_latest
の下で、enabled=1
と設定します。
ol6_addons
の下で、enabled=1
と設定します。
変更を保存し、終了します。
他のOracle Big Data Applianceサーバーにファイルをコピーします。
# dcli -d /etc/yum.repos.d -f public-yum-ol6.repo
すべてのサーバーにパッケージをインストールします。
# 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
.
.
.
すべてのサーバーでインストールが正常に終了したことを確認します。
# 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.
.
.
.
Rユーザーは、Hadoopクラスタで自身のプログラムをMapReduceジョブとして実行しますが、通常、そのプラットフォームでの個別アカウントは保有していません。かわりに、外部Linuxサーバーでリモート・アクセスが提供されます。
HadoopクラスタへのアクセスをRユーザーに提供するには、次のコンポーネントをLinuxサーバーにインストールします。
Hadoopクラスタと同じバージョンのHadoop。インストールされていない場合、予想外の問題や障害が生じることがあります。
Hadoopクラスタと同じバージョンのSqoop。Oracle Database内外でのデータのコピーをサポートする場合にのみ必要です。
Mahout。Mahout ALS-WSアルゴリズムでorch.ls
関数を使用する場合にのみ必要です。
Hadoopクラスタと同じバージョンのJava Development Kit (JDK)。
ORCH Rパッケージ。
データベース・オブジェクトにアクセスできるようにするには、Oracle DatabaseへのOracle Advanced Analyticsオプションが必要です。その後、Hadoopクライアントにこの追加コンポーネントをインストールできます。
Oracle R Enterpriseクライアントのパッケージ。
クライアントにHadoopをインストールし、HDFSクライアントを使用する場合はHadoopの最小限の構成を行う必要があります。
クライアント・システムにHadoopをインストールして構成するには、次の手順を実行します。
Sqoopをインストールして構成する場合、「サードパーティHadoopクラスタへのSqoopのインストール」で説明する手順と同じ手順をクライアント・システムで完了します。
Rを使用したOracle Databaseへの完全なアクセスをサポートするには、Oracle R Enterpriseリリース1.4のクライアントのパッケージをインストールします。このパッケージがない場合、Oracle R Advanced Analytics for Hadoopでは、Oracle R Enterpriseで提供される高度な統計アルゴリズムを利用できません。
関連項目:
RおよびOracle R Enterpriseのインストールの詳細は、Oracle R Enterpriseユーザーズ・ガイド
Oracle Data Integratorを設定および使用するための手順は、Oracle Fusion Middlewareビッグ・データとOracle Data Integratorの統合を参照してください。
ソフトウェア要件
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 Hadoopのインストール
od4h-*.zip
の内容をHadoopクラスタ上のディレクトリまたはHadoopクライアントとして構成されたシステム上のディレクトリに解凍します。od4h
という名前のディレクトリが次のサブディレクトリとともに作成されます。
doc jlib
OD4H_HOME
という変数を作成し、その変数を手順1で作成したインストール・ディレクトリに設定します。
OD4H_HOME/jlib/*
をHADOOP_CLASSPATH
変数に追加します。OD4Hを使用する場合、OD4H_HOME/jlib
をHADOOP_CLASSPATH
の最初にリストして、HADOOP_CLASSPATH
内の名前が同じでバージョンが異なるJARと競合しないようにしてください。
脚注の説明
脚注 1:『Hadoop: The Definitive Guide, Third Edition』Tom White著(O'Reilly Media Inc., 2012, 978-1449311520)。