接続の確立
JDBC データソースの作成
Java アプリケーションから接続するJDBC データソースを作成できます。CData JDBC Driver for Apache Hive に基づくJDBC データソースの作成は、3つの基本ステップで構成されます。
- ドライバーのJAR ファイルをクラスパスに追加します。JAR ファイルはインストールディレクトリの[lib]サブフォルダ内にあります。.lic ファイルはJAR ファイルと同じフォルダ内に配置される必要があることに注意してください。
- ドライバークラスを入力します。次に例を示します。
cdata.jdbc.apachehive.ApacheHiveDriver
- JDBC URL を入力します。次に例を示します。
jdbc:apachehive:Server=127.0.0.1;Port=10000;TransportMode=BINARY or jdbc:cdata:apachehive:Server=127.0.0.1;Port=10000;TransportMode=BINARY
上記の2つ目の形式は、同じURL 形式を使用しているドライバー間でアプリケーションに競合がある場合は、CData ドライバーを使用していることを確認するために常に使用できます。URL は "jdbc:apachehive:" または"jdbc:cdata:apachehive:" のいずれかから始まり、任意の接続プロパティの名前と値のペアをセミコロン区切りで入力します。
Apache Hive への接続
Apache Hive はセルフホステッド、Amazon EMR、Azure HDInsight、Google DataProc にホストされているインスタンスからの接続をサポートします。
セルフホステッドインスタンス
セルフホステッドインスタンスからApache Hive に接続するには、次の接続パラメータを設定します。- TransportMode:Hive サーバーとの通信に使用するトランスポートモード。有効な入力値は、BINARY(デフォルト)およびHTTP です。
- Server:HiveServer2 をホストしているサーバーのホスト名、またはIP アドレス。
- Port:HiveServer2 インスタンスへの接続用のポート。
- UseSSL(オプション):有効なTLS/SSL に設定。
Amazon EMR
Amazon EMR がホストする&service インスタンスから接続するには、まずEMR へのSSH トンネルを作成する必要があります。これが終わると、接続の準備は完了です。以下の手順に従います。
- EMR へのSSH トンネルを作成:
- アクティブなEMR クラスターとEC2 キーペアにアクセスできることを確認します。キーペアは.ppk または.pem 形式です。
- クラスター設定でインバウンドトラフィックを認可します。
- EMR へのアクティブなトンネルセッションが確立されたら、次の接続パラメータを設定します:
- Server:Apache Hive サーバーが稼働しているマスターノード(master-public-dns-name)。
- Port:Apache Hive に接続するためのポート。
- UseSSH:True。
- SSHServer:マスターノード(master-public-dns-name)。
- SSHPort:22。
- SSHAuthMode:PUBLIC_KEY。
- SSHUser:hadoop。
- SSHClientCert:キーファイルへの完全パス。
- SSHClientCertType:キーファイルに対応するタイプ。通常はPEMKEY_FILE またはPPKFILE です。
Azure HDInsight でのHadoop クラスター
Azure HDInsight でホストされているHadoop クラスターへの接続を確立するには、次の接続パラメータを設定します。- User:Azure HDInsight でクラスターを作成する際に指定したクラスターユーザー名。
- Password:Azure HDInsight でクラスターを作成する際に指定したクラスターパスワード。
- Server:クラスターに対応するサーバー。例:myclustername.azurehdinsight.net
- Port:HiveServer2 を実行するポート(デフォルトは443)。
- HTTPPath:hive2 サービスのHTTP パス(デフォルトはhive2)。
- TransportMode:HTTP。
- UseSSL:True。
- QueryPassthrough(オプション):本製品 のSQL エンジンをバイパスし、Apache Hive に直接HiveQL クエリを実行する場合はTrue。
Google DataProc
Google DataProc インスタンスから接続するには、DataProc 上のApache Hive サーバーが適切に設定されていることを確認し、hive クラスタのWeb インタフェースへのSSH トンネルを構築する必要があります。それらが終わると、接続の準備は完了です。以下の手順に従います。
- DataProc 上のApache Hive サーバーがDataProc Component Gateway を有効にして作成されていることを確認してください。
- Hive Cluster の外部IP アドレスを取得するには、Cloud Shell をロードしてインスタンスをリストします。
gcloud compute instances list
該当するマシンの外部IP を控えておきます。
- Hive クラスタのWeb インタフェースへのSSH トンネルを構築するには:
- DataProc 上のHive クラスタに移動し、WEB INTERFACES タブを選択します。
- Create an SSH tunnel to connect to a web interface を選択します。クラウドコンソールのコマンドが表示されます。
このコンソールを使用してSSH キーペアを作成します。コンソールで指定されたディレクトリからプライベートキーをダウンロードします。 - SSH ユーティリティでSSH トンネルを設定するには:
- ホスト名:前述の外部IP。
- ポート: 22
- ツールをあなたのSSH プライベートキーに指定します。
- Tunnel では、オープンポートをlocalhost:10000 にマップします。サーバーは適切にlocalhost を解決します。
- これで、Google DataProc でApache Hive に接続する準備ができました。次の接続パラメータを設定します。
- TransportMode:BINARY。
- AuthScheme:Plain。
- Port:ローカルマシンで選択されているSSH トンネルポート。
Apache Hive への認証
Apache Hive は、PLAIN SASL、LDAP、NOSASL、およびKerberos 認証をサポートします。
PLAIN SASL
PLAIN SASL でApache Hive に認証するには、Hive 構成ファイル(hive-site.xml)のhive.server2.authentication プロパティをNone に設定し、以下の本製品 の接続プロパティを設定します。
- AuthScheme:PLAIN
- User:ログインするユーザー。名前が指定されない場合、ログインユーザーは「anonymous」に設定されます。
- Password:ユーザーのパスワード。パスワードが指定されない場合、パスワードは「anonymous」に設定されます。
LDAP
LDAP でApache Hive に認証するには、Hive 構成ファイル(hive-site.xml)のhive.server2.authentication プロパティをLDAP に設定し、本製品 で以下の接続プロパティを設定します。- AuthScheme:LDAP
- User:ログインするユーザー。
- Password:ユーザーのパスワード。
NOSASL
NOSASL を使用してApache Hive に認証するには、AuthScheme 本製品 接続プロパティおよびHive 構成ファイル(hive-site.xml)のhive.server2.authentication プロパティの両方ををNOSASL に設定します。
Kerberos
Kerberos でApache Hive への認証を行うには、AuthScheme をKERBEROS に設定します。
Kerberos 経由でApache Hive への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。
Kerberos チケットの取得
Kerberos チケットは、依頼者のID を認証するために使用されます。正式なログイン / パスワードの代わりにチケットを使用することで、パスワードをローカルに保存したり、ネットワーク経由で送信したりする必要がなくなります。 ユーザーは、ローカルコンピュータでログインするか、 コマンドプロンプトでkinit USER と入力するたびに、再認証されます(チケットはリフレッシュされます)。本製品 は、 KRB5CCNAME および / またはKerberosKeytabFile 変数が存在するかどうかに応じて、必要なKerberos チケットを取得する3 つの方法を提供します。
MIT Kerberos 資格情報キャッシュファイル
このオプションを使用すると、MIT Kerberos チケットマネージャーまたはkinit コマンドを使ってチケットを取得できます。このオプションでは、User またはPassword 接続プロパティを設定する必要はありません。
このオプションは、KRB5CCNAME がシステムに作成されている必要があります。
MIT Kerberos 資格情報キャッシュファイル経由でチケット検索を有効にするには:
- お使いの環境にKRB5CCNAME 変数が存在することを確認します。
- KRB5CCNAME を資格情報キャッシュファイルを指すパスに設定します。(例えば、C:\krb_cache\krb5cc_0 または/tmp/krb5cc_0 です。)資格情報キャッシュファイルは、MIT Kerberos チケットマネージャーを使用してチケットを生成するときに作成されます。
- チケットを取得するには:
- MIT Kerberos チケットマネージャーアプリケーションを開きます。
- Get Ticket をクリックします。
- プリンシパル名とパスワードを入力します。
- OK をクリックします。
チケットの取得に成功すると、チケット情報がKerberos チケットマネージャーに表示され、クレデンシャルキャッシュファイルに保存されます。
本製品 はキャッシュファイルを使用してApache Hive に接続するためのKerberos チケットを取得します。
Note: KRB5CCNAME を編集したくない場合は、KerberosTicketCache プロパティを使用してファイルパスを手動で設定することができます。この設定後に、本製品 は指定されたキャッシュファイルを使用してApache Hive に接続するためのKerberos チケットを取得します。
Keytab ファイル
お使いの環境にKRB5CCNAME 環境変数がない場合、Keytab ファイルを使用してKerberos チケットを取得できます。
この方法を使用するには、User プロパティを目的のユーザー名に設定し、KerberosKeytabFile プロパティをユーザーに関連付けられたキータブファイルを指すファイルパスに設定します。
User およびPassword
お使いの環境にKRB5CCNAME 環境変数およびKerberosKeytabFile プロパティが設定されていない場合、ユーザーとパスワードの組み合わせを使用してチケットを取得できます。
この方法を使用するには、User およびPassword プロパティを、Apache Hive での認証に使用するユーザー / パスワードの組み合わせに設定します。
クロスレルム認証の有効化
より複雑なKerberos 環境では、複数のレルムおよびKDC サーバーが使用されるクロスレルム認証が必要になる場合があります。例えば、1つのレルム / KDC がユーザー認証に使用され、別のレルム / KDC がサービスチケットの取得に使用される場合です。このようなクロスレルム認証を有効にするには、KerberosRealm およびKerberosKDC プロパティをユーザー認証に必要な値に設定します。また、KerberosServiceRealm およびKerberosServiceKDC プロパティを、 サービスチケットの取得に必要な値に設定します。