Oracle Big Data Connectorsは、HadoopとOracle Databaseの間でデータを交換するための強力なツールセットです。これらのツールの環境設定方法を学び、可能なかぎり機能を最大限に発揮させることに意義はありますが、すべてを学び尽くさなくても、ツールの使用を開始して成果をあげる方法があります。この目的で、Oracleは一連の利便性向上ツールを開発しています。
Oracle Shell for Hadoop Loadersは、Oracle Big Data Connectorsを使いやすくするために最初に開発されたツールです。
Oracle Shell for Hadoop Loadersとは
Oracle Shell for Hadoop Loaders (OHSH)は、Oracle Loader for Hadoop、Oracle SQL Connector for HDFSおよびCopy to Hadoopへの簡単に使用できるコマンドライン・インタフェースを提供するヘルパー・シェルです。 コマンドライン・リコール、履歴、親プロセスからの環境変数の継承、新規または既存の環境変数の設定およびコマンドラインでの環境切り替えの実行など、基本的なシェル機能を備えています。
Oracle Shell for Hadoop Loadersのコア機能には次のようなものがあります。
Oracle Shell for Hadoop Loadersがロード・タスクを実行するために使用する、名前付きの外部リソースの定義。
ロード操作のデフォルト値の設定。
ロードコマンドの実行。
ロード前後の簡単なタスクの、オペレーティング・システム、HDFS、HiveおよびOracleへの委任。 これらのタスクには、ロードするデータの表示およびロード後のターゲット表のデータの表示も含まれます。
関連項目:
OHSHをセットアップするには、Oracle Big Data SQLインストレーション・ガイドの手順に従います。
OHSHキットのサンプルディレクトリには、Oracle Shell for Hadoop Loadersを使用してリソースを定義しデータをロードする多くの例が含まれています。OHSHのロード方式を実行する方法の例および手順の詳細は、<OHSH_KIT>/examples/README.txt
を参照してください。
OHSH対話型セッションの開始
対話型セッションを開始するには、コマンドラインでohsh
を入力します。これにより、OHSHシェルに移動します(パスにohshが含まれている場合)。
$ ohsh ohsh>
このシェルでOHSHコマンドを実行できます(OHSH構文を使用)。Beeline/Hive、Hadoop、BashおよびSQL*Plusのコマンドを実行することもできます。非OHSHコマンドの場合は、コマンドの実行に使用するリソースの名前に委任演算子の接頭辞(%)を追加します。次に例を示します。
ohsh> %bash0 ls —l
OHSHのスクリプト記述
CLIで機能するのと同じコマンドをスクリプト記述することもできます。ohsh
コマンドには、スクリプトで使用するための3つのパラメータが用意されています。
ohsh —i <filename>.ohsh
-i
パラメータは、プロンプトが表示される前に、OHSHに、スクリプト内のコマンドを使用して対話型セッションを初期化するように指示します。これは、シェル内で作業を開始する前に、必要なセッション・リソースを設定し、他の準備タスクを自動化するための便利な方法です。
$ ohsh –i initresources.ohsh
ohsh —f <filename>.ohsh
-f
パラメータを指定してohsh
コマンドを実行すると、非対話型セッションが開始され、スクリプト内のコマンドが実行されます。
$ ohsh –f myunattendedjobs.ohsh
ohsh —i —f <filename>.ohsh
-i
と-f
を一緒に使用することで、非対話型セッションを初期化してからセッションで別のスクリプトを実行できます。
$ ohsh -i mysetup.ohsh –f myunattendedjobs.ohsh
ohsh —c
このコマンドは、OHSHセッションが起動時に継承するすべてのHadoop構成プロパティをダンプします。
OHSHリソースの使用
リソースは、OHSHがやり取りする名前付きエンティティです。例: Hadoopクラスタはリソースであり、Oracleデータベース、Hiveデータベース、OracleデータベースとのSQL*Plusセッション、およびローカルOSでのBashシェルへのJDBC接続と同様です。
OHSHは、起動時にhive0
(デフォルト
Hiveデータベースに接続するため)およびhadoop0
という2つのデフォルト・リソースを提供します。
hive0
リソースを使用して次のHiveコマンドを実行します。
ohsh> %hive0 show tables;
他のHiveデータベースに接続するためにHiveリソースを追加作成できます。
hadoop0
リソースを使用して次のHadoopコマンドを実行します。
ohsh> %hadoop0 fs -ls
対話型またはスクリプト化セッション内で、SQL*PlusやJDBCなどの追加リソースのインスタンスを作成できます。OHSHを介してOracle Databaseに接続するには、次の2つのリソースを作成する必要があります。
SQL*Plusリソースの作成:
ohsh> create sqlplus resource sql0 connectid=”bigdatalite.localdomain:1521/orcl”
JDBCリソースの作成:
ohsh> create jdbc resource jdbc0 connectid=<database connection URL>
リソースの表示:
ohsh> show resources
このコマンドは、デフォルトのリソース、およびセッション内で作成された追加リソースを示します。
ヘルプの表示
OHSHシェルでは、すべてのコマンドに対するオンライン・ヘルプが用意されています。
すべてのOHSHコマンドのリストを表示するには、次のコマンドを実行します。
ohsh> help
特定のコマンドのヘルプを表示するには、help
と入力し、続けて次のコマンドを入力します。
ohsh> help show
次の表に、使用可能なヘルプ・カテゴリを示します。
helpコマンド | 説明 |
---|---|
help load |
OracleおよびHadoopの表に対するloadコマンドを示します。 |
help set |
ロード操作のデフォルト値を設定するためのヘルプを表示します。また、特定の設定により影響を受けるロード・メソッドも示します。 |
help show |
デフォルト設定を調査するためのヘルプを表示します。 |
help shell |
シェルライクなコマンドを表示します。 |
help resource |
指定リソースを作成および削除するためのコマンドを表示します。 |
Oracle Shell for Hadoop Loadersには、次のサードパーティ製品が含まれています。
これらのソフトウェア・パッケージは、Apache 2.0 Licenseに基づいてライセンスが供与されています。
特に断りがないかぎり、あるいは、サードパーティ・ライセンス(LGPLなど)の条項で求められている場合、Apache Licensed Codeに関連するすべてのステートメントを含めた、この項のライセンスとステートメントは、告知のみを目的とするものです。
ライセンスに基づいて複数の製品にライセンスが供与されている場合でも、次のライセンスをドキュメントに記載するのは1度だけです。
次の条件は、Apache 2.0 Licenseに基づいてライセンスが供与されているすべての製品に適用されます。
Apache License Version 2.0 (「ライセンス」)に従わない場合は、これらのファイルを使用することができない場合があります。
ライセンスのコピーは、http://www.apache.org/licenses/LICENSE-2.0から入手できます。ライセンスのコピーは次の条件で複製することができます。
Copyright (c) 2015 Terence Parr, Sam Harwell
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Oracle SQL Developerは、本質的にはグラフィカル・バージョンのSQL*Plusです。特に、HadoopとOracle Database間でデータを移動するためのツールに対するわかりやすいインタフェースが特長です。これには、Copy to Hadoop、Oracle Loader for HadoopおよびOracle SQL Connector for Hadoop Distributed File System (Oracle Big Data SQLも同様)のサポートが含まれます。インタフェースには、これらすべてのツールの使用を支援するウィザードがあります。
次のステップに従って、Oracle Big Data Connectorsと連携するようにOracle SQL Developerを設定します。
Oracle SQL Developerをダウンロードしてインストールします。
Hive JDBCドライバをダウンロードします。
新しいHive JDBCドライバをOracle SQL Developerに追加します。
Oracle Big Data Connectorsに必要な環境変数を設定します。
必要な接続を設定します。
ドライバをインストールし、環境を構成して、Oracle DatabaseとHadoop間の接続を作成したら、Oracle SQL Developer内からOracle Big Data Connectorsの使用を開始できます。
Oracle SQL Developerのダウンロードおよびインストール
Oracle SQL Developer 4.2以上をインストールします。リリース4.2は、Copy To Hadoopのサポートが含まれる最初のリリースであるため、推奨されます。
インストールは簡単です。パッケージをダウンロードして抽出するのみです。
Oracle Technology Network (OTN)のOracle SQL Developerダウンロード・サイトに移動します。
ライセンス契約を受け入れ、プラットフォームにとって適切なバージョンをダウンロードします。
ダウンロードしたZIPファイルをローカル・ドライブに抽出します。
抽出先のフォルダ名は任意です。
インストールと構成の詳細は、『Oracle SQL Developerユーザーズ・ガイド』のSQL Developerのインストールおよび開始に関する項を参照してください。
Cloudera Enterprise用のHive JDBCドライバのダウンロードおよびインストール
Oracle SQL DeveloperをHadoop環境のHiveに接続するには、Cloudera Enterprise用のHive JDBCドライバをダウンロードしてインストールする必要があります。これらのドライバは、Oracle SQL Developerのダウンロード・パッケージには付属していません。
HDPユーザーに対する注意:
現時点で、SQL Developer 4.2には、Hive用のCloudera JDBCドライバが必要です。ただし、これらのドライバは、Hortonworksクラスタに対しても動作するように見えます。HDPユーザーは、これらのドライバがその要件に適合するかどうかを判別するためにテストを行う必要があります。最新のHive用Cloudera JDBCドライバをCloudera Webサイトから任意のローカル・ディレクトリにダウンロードします。
Cloudera Webサイトで「cloudera hive jdbc drivers download
」を検索し、使用可能なドライバ・パッケージの場所を特定します。
ドライバ・バージョン、OSおよびOSバージョン(32/64ビット)を選択するよう求められます。現時点で最新のドライバ・バージョンは2.5.18です。使用可能な最新バージョンを選択できます。
アーカイブを解凍します。
unzip hive_jdbc_<version>.zip
抽出したコンテンツを表示します。最上位フォルダの中には、複数のZIPファイルがあります。それぞれが異なるJDBCバージョン用です。この設定では、JBDC 4.0のみ使用可能です。JDBC4_ ZIPファイル(JDBC4_<version>.zip
)を選択します。
重要:
JDBC 4.0用のドライバを含むJDBC4_ ZIPファイルのみを選択してください。これが互換性のある唯一のバージョンです。JDBC41_*
などの他のパッケージのドライバは、SQL Developer 4.2と互換性がなく、接続を試みるとエラーが返されます。Oracle SQL Developerからアクセスできるターゲット・ディレクトリ(./home/oracle/jdbc
など)にJDBC4アーカイブを解凍します。
# unzip Cloudera_HiveJDBC4_<version>.zip -d /home/oracle/jdbc/
抽出されたコンテンツは次のようになります。
Cloudera_HiveJDBC4_2.5.18.1050\Cloudera-JDBC-Driver-for-Apache-Hive-Install-Guide.pdf Cloudera_HiveJDBC4_2.5.18.1050\Cloudera-JDBC-Driver-for-Apache-Hive-Release-Notes.pdf Cloudera_HiveJDBC4_2.5.18.1050\commons-codec-1.3.jar Cloudera_HiveJDBC4_2.5.18.1050\commons-logging-1.1.1.jar Cloudera_HiveJDBC4_2.5.18.1050\HiveJDBC4.jar Cloudera_HiveJDBC4_2.5.18.1050\hive_metastore.jar Cloudera_HiveJDBC4_2.5.18.1050\hive_service.jar Cloudera_HiveJDBC4_2.5.18.1050\httpclient-4.1.3.jar Cloudera_HiveJDBC4_2.5.18.1050\httpcore-4.1.3.jar Cloudera_HiveJDBC4_2.5.18.1050\libfb303-0.9.0.jar Cloudera_HiveJDBC4_2.5.18.1050\libthrift-0.9.0.jar Cloudera_HiveJDBC4_2.5.18.1050\log4j-1.2.14.jar Cloudera_HiveJDBC4_2.5.18.1050\out.txt Cloudera_HiveJDBC4_2.5.18.1050\ql.jar Cloudera_HiveJDBC4_2.5.18.1050\slf4j-api-1.5.11.jar Cloudera_HiveJDBC4_2.5.18.1050\slf4j-log4j12-1.5.11.jar Cloudera_HiveJDBC4_2.5.18.1050\TCLIServiceClient.jar Cloudera_HiveJDBC4_2.5.18.1050\zookeeper-3.4.6.jar
Oracle SQL Developerへの新規Hive JDBCドライバの追加
次に、SQL Developerを起動して、抽出したすべてのドライバ・ファイルを「Preferences」ウィンドウの「Third Party JDBC Drivers」にコピーします。
Oracle SQL Developerをダウンロードして抽出したフォルダに移動します。
sqldeveloper
サブフォルダをクリックします。次に、そのフォルダのsqldeveloper.exe
をクリックします。
SQL Developerのメニュー・バーで、「Tools」→「Preferences」を選択します。
「Preferences」ウィンドウのファイル・エクスプローラで、「Database」を展開し、「Third Party JDBC Drivers」をクリックします。
「Add Entry」をクリックします。
Cloudera_HiveJDBC4_<version>.zip
から抽出したファイルを配置したフォルダに移動します。ZIPから抽出されたすべてのJARファイルをこのウィンドウにコピーして、「OK」をクリックします。
Oracle SQL Developerを再起動します。
Oracle Big Data ConnectorsとOracle SQL Developerを併用するための環境変数の設定
SQL DeveloperとOracle Big Data Connectorsを併用するには、SQL DeveloperからHadoopクライアント、HadoopノードまたはHadoopエッジ・ノードへのSSH接続を作成する必要があります。このアカウントのホーム・ディレクトリには、稼働するBig Data Connectorsごとに特定の環境ファイルが必要です
注意:
Copy to Hadoopでステージング・コピーを実行する場合、Copy to Hadoopでは、データベース・システムのoracle
OSアカウントに対する追加のSSH接続が必要です。 環境ファイルを作成して移入する必要があります。次の表に、正確なファイル名と各ファイルに追加する必要のあるコンテンツを示します。ファイルは、Big Data Connectorを使用するアカウントによって読み取ることができる必要があります。
環境ファイル名 | コンテンツ |
---|---|
Copy to Hadoop用:.sqldev_cp2hadoop_env |
#!/bin/bash # Environment file for Copy to Hadoop export CP2HADOOP_HOME=<Parent directory of the directory containing Copy to Hadoop JARs> # On Oracle Big Data Appliance, the Copy to Hadoop JARs are in /opt/oracle/bigdatasql/bdcell-12.1 export HADOOP_CLASSPATH=${CP2HADOOP_HOME}/jlib/* # ---------------------------------------------- # If using Oracle Wallet, add the following four variables: export WALLET_LOCATION=<Location of the Oracle Wallet files> #For example: export WALLET_LOCATION=/home/${USER}/wallet export TNS_ADMIN=<Like WALLET_LOCATION, this also points to the location of the Oracle Wallet files> export CLUSTER_WALLET_LOCATION=${WALLET_LOCATION} export CLUSTER_TNS_ADMIN=${TNS_ADMIN} |
Oracle Loader for Hadoop用:.sqldev_olh_env |
#!/bin/bash # Environment file for Oracle Loader for Hadoop export HIVE_HOME=<For example: /opt/cloudera/parcels/CDH/lib/hive> export HIVE_CONF_DIR=<For example: /etc/hive/conf> export OLH_HOME=<For example (on Oracle Big Data Appliance): /opt/oracle/olh> export HADOOP_CLASSPATH=${OLH_HOME}/jlib/*:${HIVE_CONF_DIR}:${HIVE_HOME}/lib/* export OLH_LIB_JARS=${HIVE_HOME}/lib/hive-exec.jar,${HIVE_HOME}/lib/hive-metastore.jar,${HIVE_HOME}/lib/libfb303-0.9.2.jar # ---------------------------------------------- # If using Oracle Wallet, add the following four variables: export WALLET_LOCATION=<Location of the Oracle Wallet files> export TNS_ADMIN=<Same path as WALLET_LOCATION> export CLUSTER_WALLET_LOCATION=${WALLET_LOCATION} export CLUSTER_TNS_ADMIN=${TNS_ADMIN} |
Oracle SQL Connector for HDFS用:.sqldev_osch_env |
#!/bin/bash # Environment file for Oracle SQL Connector for HDFS export HIVE_HOME=<For example: /opt/cloudera/parcels/CDH/lib/hive> export HIVE_CONF_DIR=<For example: /etc/hive/conf> export OSCH_HOME=<For example (on Oracle Big Data Appliance): /opt/oracle/osch> export HADOOP_CLASSPATH=${OSCH_HOME}/jlib/*:${HIVE_CONF_DIR}:${HIVE_HOME}/lib/* # ---------------------------------------------- # If using Oracle Wallet, add the following four variables: export WALLET_LOCATION=<Location of the Oracle Wallet files> export TNS_ADMIN=<Same path as WALLET_LOCATION> export CLUSTER_WALLET_LOCATION=${WALLET_LOCATION} export CLUSTER_TNS_ADMIN=${TNS_ADMIN} |
Oracle Big Data Connectors用のセキュアな接続の設定
Oracle Big Data ConnectorsがHadoopにアクセスする際に必要なSSH接続を作成する方法の詳細は、『Oracle SQL Developerユーザーズ・ガイド』のSQL DeveloperでのApache Hadoop Connectorsのサポートに関する項を参照してください。