Oracle Big Data SQLは、Hadoopクラスタ管理サーバーとOracle Databaseサーバー・ノードの両方にインストールする必要があります。この項では、Oracle DatabaseでのOracle Big Data SQL 3.1の完全インストールについて説明します。
Oracle Databaseサーバーをインストールするための前提条件
Oracle Big Data SQLがデータベース・ノードにすでにインストールされていて、既存の構成を更新する場合は、「データベース・ノードでの既存のOracle Big Data SQLインストールの再構成」を参照してください。
重要:
マルチノード・データベース(Oracle RACシステムなど)の場合、このインストールをデータベースのあらゆるノードで繰り返す必要があります。これを実行していない場合、Oracle Big Data SQLサービスを開始すると、RPC接続エラーが表示されます。インストール・スクリプトの実行時に、パラメータを使用して正しいネットワーク・インタフェース・アドレスを渡すことで、同じインストール・バンドルを各データベース・ノードで再使用できます。これについては、後述の「構成済のDatabase_IPアドレスを変更する必要がある場合」を参照してください。
Oracle Big Applianceでは、Oracle Big Data SQLはExadata Database MachineまたはExadata以外のサーバーのいずれかにあるOracle Databaseに接続できますが、同時に両方に接続することはできません。
必要なソフトウェア
サポートされるLinuxディストリビューション、Oracle Databaseリリース・レベルおよび必要なパッチについては、My Oracle Supportの『Oracle Big Data SQL Master Compatibility Matrix』(Doc ID 2119369.1)を参照してください。
注意:
このインストールを開始する前に、互換性マトリクスで規定されている正しいバンドル・パッチおよび個別パッチをあらかじめ適用しておいてください。推奨されるHadoopクラスタへのネットワーク接続
Oracle DatabaseとHadoopクラスタ間のイーサネット接続には、10 Gb/sイーサネットをお薦めします。
環境変数
次のものが必須です。
ORACLE_SID
ORACLE_HOME
GI_HOME (Grid Infrastructureホーム・ディレクトリ)は、ORACLE_HOMEからアクセス可能な相対パス上にある場合、オプションです。それ以外にGridホームが存在する場合は、GI_HOMEを設定する必要があります。Gridホームがノード上に存在しない場合は、次に示す手順の説明に従ってbds-database-install.sh
スクリプトを実行する際に、crs=false
を使用する必要があります
すべてのデータベース・ノードでのBig Data SQLインストール・スクリプトのコピー、抽出および実行
この項の手順は、sudo
が示されている場合を除き、oracle
ユーザーとして実行します。
インストールの後半で、次のいずれかまたは両方の条件においてOracle Databaseの再起動が1回必要になることがあります。
Oracle DatabaseにOracle Grid Infrastructureが含まれていない場合。この場合、diskmon
のスタンドアロン操作をサポートするために、インストール・スクリプトによってpfile
またはspfile
構成ファイルが変更されます。
cellinit.ora
に記録されているIPアドレスおよび通信プロトコルに変更がある場合。これらのパラメータは、Hadoopクラスタ上のセルへの接続を定義します。たとえば、IPアドレスがイーサネット・アドレスからインフィニバンド・アドレスに変更されるか、プロトコルが(TCPとUDP間で)変更されるか、またはその両方の場合、データベースを再起動する必要があります。
「データベース側のインストール・バンドルの作成」の指示の一部としてまだそれを行っていない場合は、Hadoopクラスタ管理サーバー上のBDSSetup
ディレクトリからインストール・バンドルをデータベース・ノード上の/home/oracle
にコピーします。
$ scp bds-database-install.zip oracle@<database_node>:/home/oracle
インストールを実行するために、oracle
としてデータベース・ノードにログオンします。
バンドルを解凍し、cd
を実行してzipファイルから抽出されたbds-database-install
ディレクトリに変更します。
$ unzip bds-database-install.zip $ cd bds-database-install
bds-database-install.sh
を実行します。
表3-1に示されるオプションのbds-database-install
パラメータに注意してください。
[oracle@mydbserver bds-database-install]$ ./bds-database-install.sh
特別な条件:
データベースでOracle Gridが使用されない場合は、bds-database-install.sh
コマンドで--crs=false
オプションを使用します。次に例を示します。
[oracle@mydbserver bds-database-install]$ ./bds-database-install.sh --crs=false --dbname=<db-name>
Oracle Gridが稼働していない場合は、ORACLE_HOME/bin/mtactl start <MTA_SID>
のように、MTA extprocも手動で起動する必要があります。デフォルトのインストールでは、MTA_SID
は、bds_<ORACLE_SID>_<Hadoop_cluster_name>
と表されます。
bds-database-install.sh
で/etc/oracle/cell/network-config/cellinit.ora
が見つかり、更新されると、インストールが完了して次のメッセージが表示されます。 bds-database-install: installation successful for cluster <cluster name>
表3-1 bds-database-install.shのオプション・パラメータ
パラメータ | 機能 |
---|---|
--crs |
Oracle Gridサポートの使用を指定します。Gridがこのデータベース・ノードで稼働していない場合、またはこのデータベースでGrid (CRS/ASM)をまったく使用しない場合、bds-database-install.sh スクリプトで--crs=false オプションを適用します。 |
--cdb |
多層データベースの使用を指定します。 |
--db-resource |
Oracle Database SID (Oracle Databaseインスタンス名)を指定します。パラメータ--db-name は旧リリースからのシノニムで、まだサポートされています。 |
--debug |
シェルのトレース・モードをアクティブにします。問題を報告する場合に、Oracleサポートがこの出力を確認する必要とする場合があります。 |
--grid-home |
Oracle Gridホーム・ディレクトリを指定します。 |
--info |
クラスタに関する情報を表示します。 |
--ip-cell |
db_cellプロセスに特定のIPアドレスを設定します。次の「構成済のDatabase_IPアドレスを変更する必要がある場合」を参照してください。 |
--install-as-secondary |
セカンダリ・インストールを指定します。次の「プライマリ・インストールとセカンダリ・インストール」を参照してください。 |
--jdk-home |
JDKホーム・ディレクトリを指定します。 |
--reconfigure |
このノードとHadoopクラスタとの接続に関するパラメータを変更します。 |
--root-script-only |
rootスクリプトのみを生成します。 |
--uninstall-as-primary |
データベースからプライマリ・クラスタに関する情報を削除します。 重要: --uninstall-as-primary は、セカンダリ・クラスタでも使用される主要な情報も削除します。これを回避するには、データベースからすべてのHadoopクラスタを登録解除する場合を除き、--uninstall-as-secondary を使用してプライマリをアンインストールします。そうしないと、各セカンダリHadoopクラスタへの接続をリストアするために、そのクラスタ用に生成されたデータベース・バンドルからソフトウェアを再インストールする必要があります。 |
--uninstall-as-secondary |
Oracle DatabaseからHadoopクラスタに関するメタデータを削除しますが、すべてのクラスタに共通する主要な情報は削除しません。 |
--version |
bds-database-install.sh スクリプトのバージョンを示します。 |
プライマリ・インストールとセカンダリ・インストール
Oracle Database側のOracle Big Data SQLでは、単一のHadoopクラスタまたは複数のHadoopクラスタ(ネットワーク内の同じラック上でも異なるラック上でもかまいません)にアクセスできます。
各インストールでは、Hadoopクラスタをデータベースに登録します。データベースに登録されている最初のクラスタが、データベースのデフォルト/プライマリHadoopクラスタになります。この最初のインストールでは、Hadoopクラスタ上のデータへのアクセスに必要なJDK、HadoopクライアントおよびHiveクライアントもインストールします。
データベースで追加のHadoopクラスタに接続する場合は、そのクラスタで生成されたデータベース側のインストール・バンドルをデータベース・サーバーにデプロイします。これを解凍し、--install-as-secondary
オプションを指定してbds-database-install.sh
を実行します。この"セカンダリ・インストール"により、クライアントおよびJDKのインストールを不必要に繰り返さなくても、追加のHadoopクラスタに関するメタデータがOracle Databaseに追加されます。
データベースに登録されているクラスタが複数(1つのプライマリと任意の数のセカンダリ)ある場合、Oracle Big Data SQLユーザーは各Hadoopクラスタを別々に問い合せることも、JOINを実行して異なるクラスタからのデータを結合することもできます。
構成済のDatabase_IPアドレスを変更する必要がある場合
bds-config.json
ファイル内のDATABASE_IP
パラメータは、データベース・ノードのネットワーク・インタフェースを指定します。パラメータを渡さずにbds-database-install.sh
を実行した場合、使用可能なネットワーク・インタフェースの中から(特にその長さの)IPアドレスが検索されます。構成済のDATABASE_IP
設定をオーバライドするために、bds-database-install.sh
に––ip-cell
パラメータを渡すことができます。
$ ./bds-database-install.sh --ip-cell=10.20.30.40/24
これを実行する考えられ得る理由は次のとおりです。
bds-database-install.sh
がエラーで終了する。構成されたIPアドレスが間違っている可能性がある。
クラスタに追加のデータベース・ノードがあり、定義されたDATABASE_IP
アドレスが現在のノードのネットワーク・インタフェースではない。
接続が複数ノード・データベースへのものである。この場合、各データベース・ノードでインストールを実行します。各ノードで、––ip-cell
パラメータを使用して正しいDATABASE_IP
値を設定します。
ip-cell
の正しい値を判断するには、次のようにノード上のすべてのネットワーク・インタフェースを一覧表示します。/sbin/ip -o -f inet addr show
特定のデータベース環境では、bds-database-install.sh
でcellinit.ora
またはcelliniteth.ora
(あるいはその両方)を作成する必要があります。その場合は、グリッド・インフラストラクチャのすべてのノード間で同様の変更を伝播させる必要があります。これらのような場合、スクリプトではoracle
とroot
間でパスワードなしSSH設定が要求されるか、または実行中に各ノードについてパスワードが求められます。変更の性質によってグリッド・インフラストラクチャの再起動が必要となる場合、スクリプトによってグリッド・インフラストラクチャを手動で再起動する必要があることを示すメッセージも表示されます。再起動が必要な場合、グリッドの資格証明なしではインストールを完了することはできないため、グリッドのパスワードが手元にあることを確認してください。
Oracle Big Data SQLのデータベース側では、diskmonプロセスはHadoopクラスタとの通信の役割を担うエージェントです。これはOracle Exadata Database Machine上の機能と同様、コンピュート・ノードとストレージ・ノード間の通信を管理します。
Grid環境では、diskmonはGridユーザーによって所有されます。Grid環境以外では、Oracle Databaseの所有者によって所有されます。
Oracle Big Data SQLでは、diskmon設定は、/etc/oracle/cell/network-config/
ディレクトリ内のcellinit.ora
およびcelliniteth.ora
ファイル上に格納されます。クラスタの接続要件に従い、インストーラによってこれらのファイルは更新されます。
これは、いつGridまたはOracle Databaseを再起動する必要があるかどうかを判断するための方法です。
インストーラで旧版のcellinit.ora
またはcelliniteth.ora
ファイルが存在しないことが検出された場合、いずれのdiskmonプロセスも実行していないことを意味します。このような場合、環境にOracle Gridが含まれているのであれば、Gridを再起動する必要があります。環境にGridが含まれていない場合は、Oracle Databaseを再起動する必要があります。
旧版のcellinit.ora
またはcelliniteth.ora
ファイル(あるいはその両方)が存在する場合は、diskmonプロセスが実行していることを示します。この場合、インストーラでこれらのファイルに変更を加える必要がなければ、データベースのみを再起動する必要があります。
マルチノードのGrid環境では、diskmonはすべてのノード上で単一のコンポーネントとして機能し、cellinit.ora
およびcelliniteth.ora
がすべてのノード上で同期化される必要があります。このタスクは、SSHを介して行われます。クラスタ上でパスワードなしSSHが設定されている場合は、ユーザーの操作は必要ありません。パスワードなしSSHが設定されていない場合は、スクリプトは一時停止し、すべてのノードに対してrootの資格証明を入力することが求められます。すべてのノード間のcellinit.oraおよびcelliniteth.oraファイルが同期化されている場合は、スクリプトは続行します。その後、スクリプトが完了し、この場合はGridインフラストラクチャを再起動する必要があります。
3.1以前のOracle Big Data SQLリリースでは、アクセスはPUBLIC
ユーザー・グループに付与されます。3.1 (およびそれ以上のリリース)では、Oracle Big Data SQLにアクセスする必要がある各ユーザーに対して次の処理を実行する必要があります。
BDSQL_USER
ロールを付与します。
BigDataSQL構成ディレクトリ・オブジェクトの読取り権限を付与します。
たとえば、user1
にアクセスを付与するには、次のようにします。
SQL> grant BDSQL_USER to user1; SQL> grant read on directory ORACLE_BIGDATA_CONFIG to user1;