この章では、Oracle Big Data Connectorsの概要とインストール手順を示し、ユーザーがコネクタにアクセスするのに必要な権限について説明します。
この章の内容は次のとおりです。
Oracle Big Data Connectorsを使用すると、HadoopクラスタとOracle Databaseに格納されているデータ間のデータ・アクセスが簡単になります。Oracle Big Data Applianceまたはコモディティ・ハードウェア上で稼働するHadoopクラスタでの使用に対してライセンス供与されます。
次のコネクタがあります。
Oracle SQL Connector for Hadoop Distributed File System (旧Oracle Direct Connector for HDFS): Oracle外部表は、Hadoop Distributed File System (HDFS)ファイルまたはHive表に格納されているデータにアクセスできます。データをHDFSまたはHive表に保持することも、Oracle Databaseにロードすることもできます。Oracle SQL Connector for HDFSは、org.apache.hadoop.util.Toolインタフェースでサポートされる汎用のコマンドライン引数を受け入れるコマンドライン・ユーティリティです。また、Oracle外部表のプリプロセッサも提供します。
Oracle Loader for Hadoop: HadoopクラスタからOracle Databaseの表にデータをすばやく移動するための効率的でパフォーマンスのよいローダーを提供します。Oracle Loader for Hadoopは、必要に応じてデータを事前にパーティション化し、そのデータをデータベース対応形式に変換します。また、データのロードや出力ファイルの作成の前に主キーまたはユーザー定義の列でレコードを任意にソートします。Oracle Loader for Hadoopは、コマンドライン・ユーティリティとして起動するMapReduceアプリケーションです。org.apache.hadoop.util.Toolインタフェースでサポートされる汎用コマンドライン・オプションを受け入れます。
Oracle Data Integrator Application Adapter for Hadoop: グラフィカル・ユーザー・インタフェースを使用して定義されたとおりに、HadoopクラスタからOracle Databaseの表にデータを抽出、変換およびロードします。
Oracle R Connector for Hadoop: ローカルR環境、Oracle Database、Hadoop間のインタフェースを提供し、3つすべてのプラットフォームで高速でインタラクティブな分析を可能にします。Oracle R Connector for Hadoopは単独で機能するよう設計されていますが、分析対象のエンタープライズ・データがOracle Databaseにも格納されている場合、Oracle R Enterpriseとともに使用すると、このコネクタの機能を最大限に活用できます。
それぞれのコネクタでは、Oracle DatabaseおよびHadoopクラスタにソフトウェア・コンポーネントをインストールする必要があります。Oracle Databaseでの追加のアクセス権限が必要な場合もあります。
関連項目: My Oracle Support情報センター: Big Data Connectors (ID 1487399.2)およびその関連情報センター |
エンタープライズでは、複数のソースから生じる大量のデータを参照します。分析した場合にエンタープライズにとってきわめて大きな価値となる膨大な量のデータのほんの一例として、Webログのクリックストリーム・データ、GPS追跡情報、小売事業のデータ、センサー・データおよびマルチメディア・ストリームなどがあります。生のデータ・フィードから取得する非構造化および半構造化情報は、それ自体ほとんど価値はありません。実際に価値のある情報を抽出するには、データを処理する必要があります。処理されたデータは、その後データベースに格納して管理できます。このデータをデータベースの構造化データと一緒に分析することで、新たな理解が得られ、実質的なビジネス利益につながります。
MapReduceは、分散システムでデータを処理するための並列プログラミング・モデルです。これは、大量のデータをタイムリに処理して線形的に縮小および拡大できます。特に、非構造化データおよび半構造化データのバッチ処理のメカニズムとして効果的です。MapReduceは、比較的下位の操作を一連のキーと値を通じて計算に抽象化します。
MapReduceジョブを簡単に定義すると、2つのフェーズ(マップ・フェーズとリデュース・フェーズ)が連続的に交代する操作になります。各マップ・フェーズは、入力データの各レコードに変換機能を適用して、キーと値のペアで表現される一連のレコードを作成します。マップ・フェーズからの出力は、リデュース・フェーズへの入力になります。リデュース・フェーズでは、マップ出力レコードはキーと値のセットにソートされるため、セット内のすべてのレコードのキーの値が同じになります。リデューサ関数がセット内のすべてのレコードに適用され、一連の出力レコードがキーと値のペアで作成されます。マップ・フェーズは、各レコードに対して論理的に並列で実行され、リデュース・フェーズは、すべてのキーの値に対して並列で実行されます。
注意: Oracle Big Data Connectorsは、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を使用できます。
関連項目:
|
Oracle Big Data Connectorsは、Oracle Technology NetworkまたはOracle Software Delivery Cloudからダウンロードできます。
Oracle Technology Networkからダウンロードするには、次の手順を実行します。
ブラウザを使用して次のWebサイトにアクセスします。
http://www.oracle.com/technetwork/bdc/big-data-connectors/downloads/index.html
各コネクタの名前をクリックして、インストール・ファイルを含むzipファイルをダウンロードします。
Oracle Software Delivery Cloudからダウンロードするには、次の手順を実行します。
ブラウザを使用して次のWebサイトにアクセスします。
条件と制限事項を受け入れて、「メディア・パック検索」ページを表示します。
検索条件を次のように選択します。
製品パックを選択: Oracle Database
プラットフォーム: Linux x86-64
「実行」をクリックして製品パックの一覧を表示します。
Oracle Big Data Connectors Media Pack for Linux x86-64 (B65965-0x)を選択して、「続行」をクリックします。
各コネクタの「ダウンロード」をクリックして、インストール・ファイルを含むzipファイルをダウンロードします。
Oracle SQL Connector for Hadoop Distributed File System (HDFS)は、Oracle Databaseが稼働するシステムにインストールして構成します。Hive表がデータソースとして使用される場合、HiveがインストールされているHadoopクラスタにOracle SQL Connector for HDFSもインストールして実行する必要があります。
Oracle SQL Connector for HDFSは、Oracle Big Data Connectors用に構成されている場合には、Oracle Big Data Applianceにインストール済です。
この項の内容は次のとおりです。
Oracle SQL Connector for HDFSには、次のソフトウェアが必要です。
Hadoopクラスタの場合:
Cloudera's Distribution including Apache Hadoopバージョン3 (CDH3)またはバージョン4 (CDH4)、あるいはApache Hadoop 1.0 (旧0.20.2)。
Java Development Kit (JDK) 1.6_08以上。推奨バージョンについては、Hadoopソフトウェアの代理店(ClouderaまたはApache)に確認してください。
Hive 0.7.0、0.7.1、0.8.1、0.9.0または0.10 (Hive表にアクセスする場合は必須、それ以外はオプション)。
これらのコンポーネントはOracle Big Data Applianceにインストール済です。
Oracle Databaseシステムの場合:
Oracle Database 12cまたはOracle Database 11gリリース2 (11.2.0.2または11.2.0.3) for Linux。
Oracle Databaseリリース11.2.0.2でOracle Data Pumpファイル形式をサポートするための、Oracle Databaseの個別パッチ。このパッチをダウンロードするには、http://support.oracle.com
にアクセスしてOracle Bug#14557588を検索します。
リリース11.2.0.3以降では、このパッチは不要です。
Hadoopクラスタと同じバージョンのHadoop。CDH3、CDH4またはApache Hadoop 1.0のいずれか。
Hadoopクラスタと同じバージョンのJDK。
Oracle SQL Connector for HDFSは、Hadoopクライアントとして機能します。Oracle DatabaseシステムにHadoopをインストールして、Hadoopクライアントを使用する場合にかぎり、最小限の構成を行う必要があります。
ただし、Oracle SQL Connector for HDFSのMapReduceジョブを実行するために、Oracle DatabaseシステムでHadoopを完全に構成する必要はありません。
Oracle DatabaseシステムをHadoopクライアントとして構成するには、次の手順を実行します。
Hadoopクラスタと同じバージョンのCDHまたはApache HadoopをOracle Databaseシステムにインストールして構成します。Oracle Big Data Applianceを使用する場合、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』のリモート・クライアント・アクセスを提供するための手順を完了します。それ以外の場合は、代理店(ClouderaまたはApache)が提供するインストール手順に従います。
注意: Oracle DatabaseシステムでHadoopを起動しないでください。Hadoopが実行されていると、Oracle SQL Connector for HDFSではHadoopクラスタではなく、そのHadoopの使用が試行されます。Oracle SQL Connector for HDFSは、Oracle DatabaseシステムのHadoopクラスタにあるHadoopのJARファイルおよび構成ファイルを使用します。 |
Oracle DatabaseからHDFSにアクセスできることを確認します。
Oracle Databaseアカウントを使用して、Oracle Databaseが稼働しているシステムにログインします。
Bashシェルを開き、次のコマンドを入力します。
hadoop fs -ls /user
場合によっては、Hadoopの実行可能ファイルが格納されているディレクトリをPATH
環境変数に追加する必要があります。CDHのデフォルト・パスは/usr/binです。
Hadoopクラスタ上で直接hadoop fs
コマンドを実行する場合と同じディレクトリ・リストが表示されます。表示されない場合、最初にHadoopクラスタが稼働していることを確認します。問題が続く場合、Oracle DatabaseからHadoopクラスタ・ファイルシステムにアクセスできるようにHadoopクライアント構成を修正する必要があります。
これで、Oracle DatabaseシステムをHadoopクライアントとして使用する準備ができました。Hadoopの他の構成手順は必要ありません。
Oracle SQL Connector for HDFSをインストールするには、次の手順を実行します。
Oracle DatabaseシステムにOracle SQL Connector for HDFSをインストールするには、次の手順を実行します。
Oracle Databaseが稼働するシステムのディレクトリにzipファイルをダウンロードします。
orahdfs-version.zipを永続ディレクトリに解凍します。
$ unzip orahdfs-2.2.0.zip Archive: orahdfs-2.2.0.zip creating: orahdfs-2.2.0/ creating: orahdfs-2.2.0/bin/ inflating: orahdfs-2.2.0/bin/hdfs_stream creating: orahdfs-2.2.0/jlib/ inflating: orahdfs-2.2.0/jlib/orahdfs.jar inflating: orahdfs-2.2.0/jlib/ora-hadoop-common.jar inflating: orahdfs-2.2.0/jlib/osdt_core.jar inflating: orahdfs-2.2.0/jlib/osdt_cert.jar inflating: orahdfs-2.2.0/jlib/oraclepki.jar inflating: orahdfs-2.2.0/jlib/ojdbc6.jar creating: orahdfs-2.2.0/log/ creating: orahdfs-2.2.0/doc/ inflating: orahdfs-2.2.0/doc/README.txt
解凍したファイルの構造は、例1-1のようになります。
orahdfs-2.2.0/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など)。
OSCH_HOME
: スクリプトをorahdfs-version/binサブディレクトリから移動した場合、この変数を手順2で作成したorahdfs-2.2.0ディレクトリのフル・パスに設定します。それ以外の場合、Oracle SQL Connector for HDFSによって自動的に格納場所が検出されます。
各環境変数の詳細は、スクリプトのコメントを参照してください。
hdfs_streamスクリプトは、Oracle SQL Connector for HDFSで作成されたOracle Database外部表のプリプロセッサです。
HDFSインストール・ディレクトリの場合、Oracle SQL Connectorからhdfs_streamを実行します。次の使用方法の情報が表示されます。
$ ./hdfs_stream
Usage: hdfs_stream locationFile
使用方法の情報が表示されない場合、Oracle Databaseを実行しているオペレーティング・システム・ユーザーに次の権限があることを確認します。
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 Databaseにログインし、hdfs_streamが格納されているorahdfs-version/binディレクトリのデータベース・ディレクトリを作成します。次の例では、Oracle SQL Connector for HDFSは/etcにインストールされます。
SQL> CREATE OR REPLACE DIRECTORY osch_bin_path AS '/etc/orahdfs-2.2.0/bin';
Oracle WalletをOracle Database 12cで使用している場合は、次のライブラリをORACLE_HOME
/jlibからOSCH_HOME
/jlibにコピーしてください。
oraclepki.jar osdt_cert.jar sdt_core.jar
HDFSおよびデータ・ポンプ形式ファイルのみにアクセスする場合は、これで準備完了です。Hive表へのアクセスを計画している場合は、「Hive表のサポート」の説明に従って、Hadoopクラスタにもソフトウェアをインストールする必要があります。
解凍したファイルの構造は、例1-1のようになります。
例1-1 orahdfsディレクトリの構造
orahdfs-version
bin/
hdfs_stream
doc/
README.txt
jlib/
ojdbc6.jar
ora-hadoop-common.jar
oraclepki.jar
orahdfs.jar
osdt_cert.jar
osdt_core.jar
log/
図1-1に、データの流れとコンポーネントの場所を示します。
図1-1 HDFSおよびデータ・ポンプ・ファイルをサポートするOracle SQL Connector for HDFSのインストール
Hive表へのアクセスをサポートするには、Hadoopクラスタで次の手順を実行します。HDFSおよびデータ・ポンプ形式ファイルのみにアクセスする場合は、この手順を省略できます。
Oracle SQL Connector for HDFSがOracle Big Data Applianceにインストールされている必要があります。インストールを確認するには、/opt/oracle/orahdfs-2.2.0が存在するかどうかを確かめます。
サードパーティ製Hadoopクラスタを使用してHive表をサポートするには、次の手順を実行します。
HiveがインストールされているHadoopクラスタ上のノードの任意のディレクトリにorahdfs-version.zipファイルをダウンロードまたはコピーします。
Oracle WalletをOracle Database 12cで使用している場合は、次のライブラリをデータベース・システムのORACLE_HOME
/jlibからHadoopクラスタのOSCH_HOME
/jlibにコピーしてください。
oraclepki.jar osdt_cert.jar sdt_core.jar
クラスタ内のすべてのノードに対して前述の手順を繰り返します。
HiveのJARファイルとconfディレクトリをHADOOP_CLASSPATH
環境変数に追加します。各種のHadoop製品間でJARが競合しないようにするため、HADOOP_CLASSPATH
は、グローバルに変更するのではなく、Oracle SQL Connector for HDFSユーザーのローカル・シェル初期化スクリプトに設定することをお薦めします。「Hadoopクラスタへのユーザー・アカウントの設定」を参照してください。
図1-2に、データの流れとコンポーネントの場所を示します。
図1-2 Hive表をサポートするOracle SQL Connector for HDFSのインストール
Oracle DatabaseユーザーがOracle SQL Connector for HDFSを使用して外部表を作成するには、次の権限が必要です。
Oracle SQL Connector for HDFSのインストール時に作成されるOSCH_BIN_PATH
ディレクトリに対するREAD
およびEXECUTE
。書込みアクセス権は誰にも付与しないでください。Oracle SQL Connector for HDFSを使用する予定のユーザーにのみEXECUTE
を付与します。
外部表を格納するデータベース・ディレクトリに対するREAD
とWRITE
、またはCREATE ANY DIRECTORY
システム権限。
データをOracleデータベースにコピーする表領域と割当て。オプション。
例1-2に、これらの権限をHDFSUSER
に付与するSQLコマンドを示します。
例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 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;
注意: Oracle SQL Connector for HDFSを使用する外部表を問い合せる場合にユーザーに必要な権限は、対象の表に対するSELECT 権限のみです。 |
HDFSおよびデータ・ポンプ形式ファイルの外部表を作成する場合は、Oracle DatabaseシステムまたはHadoopクラスタのノードにログインできます。Hiveにアクセスする場合、クラスタにログインする必要があります。
Oracle Databaseシステムのアカウントは、他のオペレーティング・システム・ユーザーの場合と同様に設定できます。HADOOP_CLASSPATH
にpath/orahdfs-2.2.0/jlib/*を含める必要があります。この設定は、このインストール手順の一部としてシェルのプロファイルに追加することも、ユーザーが設定することもできます。次の例では、BashシェルのHADOOP_CLASSPATH
を変更します。ここでは、Oracle SQL Connector for HDFSは/usr/binにインストールされています。
export HADOOP_CLASSPATH="$HADOOP_CLASSPATH:/usr/bin/orahdfs-2.2.0/jlib/*
Hiveにアクセスする場合、ユーザーがホーム・ディレクトリを持ち、Hadoopクラスタのノードにログインできるようになっている必要があります。ユーザーは、ノードにログインした後、Oracle SQL Connector for HDFSを実行し、サポートされるすべてのデータソースのOracle Database外部表を作成できます。
Oracle SQL Connector for HDFSのHadoopユーザー・アカウントを設定するには、次の手順を実行します。
HDFSおよびローカル・ファイル・システムにホーム・ディレクトリを作成します。
Oracle Big Data Applianceの場合は、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』の新しいHDFSユーザーの作成手順を参照してください。
コモディティ・ハードウェア上で稼働するHadoopクラスタの場合は、Oracle Big Data Applianceと同じ基本手順に従います。唯一の相違は、dcli
を使用して変更をすべてのノード間に複製することはできないという点です。
シェルの構成ファイル(たとえば、Bashシェルの場合は.bashrc)を変更し、必要なJARファイルをHADOOP_CLASSPATH
に追加します。
path/orahdfs-2.2.0/jlib/*
/usr/lib/hive/lib/*
/etc/hive/conf
次のBashコマンドは、Oracle Big Data ApplianceのHADOOP_CLASSPATH
を変更します。
export HADOOP_CLASSPATH="$HADOOP_CLASSPATH:/opt/oracle/orahdfs-2.2.0/jlib/*:/usr/lib/hive/lib/*:/etc/hive/conf"
変更したファイルをクラスタのすべてのノードに複製します。次のコマンドを実行すると、Oracle Big Data ApplianceのすべてのノードにBashシェル構成ファイルが複製されます。
# dcli cp -f /home/user_name/.bashrc -d /home/user_name
関連項目: dcli コマンドの詳細な構文は、『Oracle Big Data Applianceオーナーズ・ガイド』を参照してください。 |
Oracle Loader for Hadoopをインストールする前に、必要なソフトウェアがあることを確認します。
Oracle Loader for Hadoopには、次のソフトウェアが必要です。
次のいずれかが稼働しているターゲット・データベース・システム
必要なパッチを含むOracle Database 11gリリース2 (11.2.0.2)
Oracle Database 11gリリース2 (11.2.0.3)
Oracle Database 12c
注意: Oracle Database 11gリリース2 (11.2.0.2)でOracle Loader for Hadoopを使用するには、Oracle Bug#11897896に対処する個別パッチを最初に適用する必要があります。このパッチを入手するには、http://support.oracle.com にアクセスしてバグ番号を検索します。 |
Cloudera's Distribution including Apache Hadoopバージョン3 (CDH3)またはバージョン4 (CDH4)、あるいはApache Hadoop 1.0 (旧0.20.2)。
Oracle Loader for Hadoopは、Oracle Database 11gリリース2クライアント・ライブラリおよびOracle Database 11.2.0.2または11.2.0.3に接続するためのOracle Instant Clientライブラリに同梱されています。
Oracle Loader for Hadoopをインストールするには、次の手順を実行します。
oraloader-
version
.x86_64.zip
の内容をHadoopクラスタのディレクトリに解凍します。このアーカイブには次の2つのアーカイブが含まれます。
oraloader-version-h1.x86_64.zip: CDH3およびApache Hadoop 1.0で使用
oraloader-version-h2.x86_64.zip: CDH4で使用
Hadoopクラスタのディレクトリに適切なアーカイブを解凍します。
oraloader-version-hnというディレクトリが次のサブディレクトリとともに作成されます。
doc jlib lib examples
Oracle NoSQL Databaseリリース2からデータを読み取る場合、$KVHOME/lib/kvstore.jar
をHADOOP_CLASSPATH
変数に追加します。
Oracle WalletをOracle Database 12cで使用している場合は、次のライブラリをデータベース・システムのORACLE_HOME
/jlibからHadoopクラスタのOLH_HOME
にコピーしてください。
oraclepki.jar osdt_cert.jar sdt_core.jar
一般的なインストールでは、Oracle Loader for HadoopはローダーがインストールされているHadoopクラスタからOracle Databaseシステムに接続できます。接続できない場合(2つのシステムが異なるネットワーク上にある場合など)は、Oracle Loader for Hadoopをオフライン・データベース・モードで使用できます。Oracle Loader for Hadoopは、データベース・システムとHadoopクラスタの両方にインストールする必要があります。「操作モードの概要」を参照してください。
Oracle Loader for Hadoopをオフライン・データベース・モードでサポートするには、次の手順を実行します。
次の各項で、Oracle Data Integrator (ODI) Application Adapter for Hadoopのインストール要件について説明します。
Oracle Data Integrator Application Adapter for Hadoopを使用するには、まず、Oracle Data Integratorが必要です。これは、Oracle Big Data Connectorsとは別にライセンス供与されます。ODIは次のOracle Webサイトからダウンロードできます。
http://www.oracle.com/technetwork/middleware/data-integrator/downloads/index.html
Oracle Data Integrator Application Adapter for Hadoopには、Oracle Data Integrator 11.1.1.6.0以上が必要です。
インストールを実行する前に、システム要件および動作保証のドキュメントを読み、インストール先の環境が、これからインストールする製品の最小インストール要件を満たしていることを確認します。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Networkからアクセスできます。
http://www.oracle.com/technetwork/middleware/data-integrator/overview/index.html
サポートされているテクノロジおよびバージョンのリストには、次のOracle Technical Networkからアクセスできます。
http://www.oracle.com/technetwork/middleware/data-integrator/overview/index.html
Oracle Data Integrator Application Adapter for Hadoopは、Oracle Data Integrator付属CDのxml-referenceディレクトリで入手できます。
トポロジを設定するには、第4章「Oracle Data Integrator Application Adapter for Hadoop」を参照してください。
Oracle R Connector for Hadoopでは、Hadoop側とクライアントLinuxシステムへのソフトウェア環境のインストールが必要です。
Oracle Big Data Applianceでは、追加ソフトウェアのインストールや構成なしにOracle R Connector for Hadoopがサポートされます。ただし、特定のRパッケージがインストールされていることを確認する必要があります。詳細は、「追加のRパッケージのインストール」を参照してください。
ただし、その他のHadoopクラスタでOracle R Connector for Hadoopを使用するには、必要な環境を作成する必要があります。
Oracle R Connector for HadoopをサポートするサードパーティHadoopクラスタにいくつかのソフトウェア・コンポーネントをインストールする必要があります。
次のコンポーネントをサードパーティ・サーバーにインストールします。
Cloudera's Distribution including Apache Hadoopバージョン4 (CDH4)またはApache Hadoop 2.0.0。MapReduce 1を使用。
代理店で提供される手順を完了します。
Hive 0.7.1または0.9.0。
「HadoopクラスタへのHiveのインストール」を参照してください。
Oracle Databaseに接続する関数を実行するためのSqoop。Oracle R Connector 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 2.15.1とすべてのベース・ライブラリ。
「HadoopクラスタへのRのインストール」を参照してください。
各RエンジンのORCHパッケージ。Hadoopクラスタの各ノードに必要です。
「HadoopクラスタへのORCHパッケージのインストール」を参照してください。
OLHドライバ(オプション)をサポートするOracle Loader for Hadoop。「Oracle Loader for Hadoopの設定」を参照してください。
Sqoopには、Hadoopに対するSQLライクなインタフェースがあり、これはJavaベース環境になります。Oracle R Connector for Hadoopでは、Oracle DatabaseへのアクセスにSqoopが使用されます。
注意: Oracle DatabaseへのデータのロードにOracle Loader for Hadoopをドライバとして使用する場合もSqoopが必要です。Sqoopは、データベースからHDFSへのデータのコピーや自由形式の問合せのデータベースへの送信などの関数を実行します。OLHドライバでは、Oracle Loader for Hadoopがサポートしない操作の実行にもSqoopが使用されます。 |
Oracle Databaseで使用するためにSqoopをインストールして構成するには、次の手順を実行します。
Sqoopがサーバーにインストールされていない場合はインストールします。
Cloudera's Distribution including Apache Hadoopについては、次のサイトの『CDH Installation Guide』のSqoopインストール手順を参照してください
Oracle Databaseに適したJava Database Connectivity (JDBC)ドライバを次のOracle Technology Networkからダウンロードします
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
ドライバのJARファイルを$SQOOP_HOME
/libにコピーします。これは、/usr/lib/sqoop/libなどのディレクトリです。
SqoopにOracle Databaseへの接続文字列を指定します。
$ sqoop import --connect jdbc_connection_string
sqoop import --connect jdbc:oracle:thin@myhost:1521/orcl
のようになります。
Hiveは、HiveQLと呼ばれる問合せ言語によって、代替のストレージおよび取得メカニズムをHDFSファイルに提供します。Oracle R Connector for HadoopではHiveQLのデータ準備と分析機能が使用されますが、R言語構文も使用できます。
Hiveをインストールするには、次の手順を実行します。
代理店(ClouderaまたはApache)で提供されるHiveインストール手順に従います。
インストールが適切に機能することを確認します。
$ hive -H
usage: hive
-d,--define <key=value> Variable subsitution to apply to hive
commands. e.g. -d A=B or --define A=B
--database <databasename> Specify the database to use
-e <quoted-query-string> SQL from command line
-f <filename> SQL from files
-H,--help Print help information
-h <hostname> connecting to Hive Server on remote host
--hiveconf <property=value> Use value for given property
--hivevar <key=value> Variable subsitution to apply to hive
commands. e.g. --hivevar A=B
-i <filename> Initialization SQL file
-p <port> connecting to Hive Server on port number
-S,--silent Silent mode in interactive shell
-v,--verbose Verbose mode (echo executed SQL to the
console)
コマンドが失敗したり、出力に警告が表示される場合、Hiveインストールを修正します。
次のWebサイトからOracle R Distribution 2.15.1をダウンロードして、インストール手順を入手できます。
http://www.oracle.com/technetwork/indexes/downloads/r-distribution-1532464.html
あるいは、次のComprehensive R Archive Network (CRAN)のWebサイトからRをダウンロードできます。
ORCHは、Oracle R Connector for Hadoopパッケージの名称です。
ORCHパッケージをインストールするには、次の手順を実行します。
サポートするソフトウェアの環境変数を設定します。
$ export JAVA_HOME="/usr/lib/jdk6" $ export R_HOME="/usr/lib64/R" $ export SQOOP_HOME "/usr/lib/sqoop"
ダウンロードしたファイルを解凍します。
$ unzip orch-version.zip Archive: orch-linux-x86_64-2.1.0.zip extracting: ORCH2.1.0/ORCH_2.1.0_R_x86_64-unknown-linux-gnu.tar.gz inflating: ORCH2.1.0/ORCHcore_2.1.0_R_x86_64-unknown-linux-gnu.tar.gz inflating: ORCH2.1.0/OREbase_1.3.1_R_x86_64-unknown-linux-gnu.tar.gz inflating: ORCH2.1.0/OREstats_1.3.1_R_x86_64-unknown-linux-gnu.tar.gz
新しいディレクトリに変更します。
$ cd ORCH2.1.0
次の順序でパッケージをインストールします。
$ R --vanilla CMD INSTALL OREbase_1.3.1_R_x86_64-unknown-linux-gnu.tar.gz $ R --vanilla CMD INSTALL OREstats_1.3.1_R_x86_64-unknown-linux-gnu.tar.gz $ R --vanilla CMD INSTALL ORCHcore_2.1.0_R_x86_64-unknown-linux-gnu.tar.gz $ R --vanilla CMD INSTALL ORCH_2.1.0_R_x86_64-unknown-linux-gnu.tar.gz $ R --vanilla CMD INSTALL ORCHstats_2.1.0_R_x86_64-unknown-linux-gnu.tar.gz
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 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.us.oracle.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.us.oracle.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をインストールして構成するには、次の手順を実行します。
クライアント・システムにCDH3またはApache Hadoop 0.20.2をインストールして構成します。このシステムがOracle Databaseのホストになります。Oracle Big Data Applianceを使用する場合、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』のリモート・クライアント・アクセスを提供するための手順を完了します。それ以外の場合は、代理店(ClouderaまたはApache)が提供するインストール手順に従います。
Rユーザーでクライアント・システムにログインします。
Bashシェルを開き、次のHadoopファイルシステム・コマンドを入力します。
$HADOOP_HOME/bin/hadoop fs -ls /user
ファイルのリストが表示されたら終了です。表示されない場合、Hadoopクラスタが稼働していることを確認します。それでも問題が修正されない場合は、クライアントHadoopのインストールをデバッグする必要があります。
Sqoopをインストールして構成する場合、「HadoopクラスタへのSqoopのインストール」で説明する手順と同じ手順をクライアント・システムで完了します。
Oracle R Distributionの次のWebサイトからR 2.13.2をダウンロードして、インストール手順を入手できます。
終了したら、Linuxサーバーへの接続とRの実行に必要な権限がユーザーにあることを確認します。
また、Rユーザーによるアクセスが簡単になるようにRStudioサーバーもインストールできます。RStudioの次のWebサイトを参照してください。
「Hadoopへのソフトウェアのインストール」の説明に従って、クライアント・システムでORCH
のインストール手順を実行します。
Rを使用したOracle Databaseへの完全なアクセスをサポートするには、Oracle R Enterpriseリリース1.3.1以上のクライアントのパッケージをインストールします。このパッケージがない場合、Oracle R Connector for Hadoopでは、Oracle R Enterpriseで提供される高度な統計アルゴリズムを利用できません。
関連項目: RおよびOracle R Enterpriseのインストールの詳細は、Oracle R Enterpriseユーザーズ・ガイド |
脚注の説明
脚注 1: 『Hadoop: The Definitive Guide, Third Edition』Tom White著(O'Reilly Media Inc., 2012, 978-1449311520)