Apache Zeppelin for Denodo - ユーザーマニュアル

pdf形式で文書をダウンロードする


You can translate the document:

はじめに

Apache Zeppelin for Denodo は Web ベースのノートブックです。Apache Zeppelin の標準ディストリビューションをカスタマイズした本ツールでは、Denodo との連携を容易にする新機能が追加されており、より一体的な操作を実現します。

このアプリケーションを使用すると、Denodo の認証および認可インフラストラクチャを使用して VDP サーバーにログインし、Zeppelin の段落で VQL 文を実行することができます。

このマニュアルでは、Denodo がカスタマイズしたこのアプリケーションの機能や画面について機能説明を行います。Apache Zeppelin の使用方法やその他の機能の詳細については、Apache Zeppelin の Web サイト (https://zeppelin.apache.org/) を参照してください。

Apache Zeppelin は Apache ソフトウェア財団により開発されています。

インストールと構成

ノートブックのインストール

このアプリケーションは Denodo Support Site からダウンロードできます。

このアプリケーションは 2 種類のバージョンで配布されていることに注意してください。

      · Apache Zeppelin for Denodo - 共有サーバー版

      · Apache Zeppelin for Denodo - スタンドアロン版

ネットワークで複数のユーザーが (同時であるかどうかにかかわらず) アクセスすることを前提としたサーバーでは、共有サーバー版を使用する必要があります。セキュリティ上の理由から、共有サーバー版には Denodo インタープリターと Markdown インタープリターのみが含まれています。追加のインタープリターを使用する場合、1 人のユーザーがローカルマシンで使用することを目的とした、スタンドアロン版をインストールする必要があります。

スタンドアロン版には、angular、denodo、file、jdbc、md、python、sh および spark 用のインタープリターが含まれています。さらにインタープリターをインストールする必要がある場合、このマニュアルの「付録 III」を参照してください。

zip ファイル をダウンロードして展開したら、Windows では bin/zeppelin.cmd を、Linux では bin/zeppelin.sh を実行することでこのアプリケーションを起動できます。起動完了まで最大 1 分かかる場合があることに注意してください。

Linux を使用している場合、chmod u+x bin/*.sh を実行して、実行権限を追加する必要があります。 

はじめてノートブックを起動する前に、Zeppelin をユーザーのニーズ (適切な VDP サーバーへの接続など) に合わせるため、このマニュアルの「インストールと構成」を最後まで読むことを強くお勧めします。

Denodo サーバーとデータベースへのアクセスの構成

Denodo VQL の段落を実行するため、カスタマイズした JDBC Denodo インタープリターを定義し、denodo という名前で登録しました。

重要: はじめて Zeppelin アプリケーションを起動する時に、すべてのインタープリターのすべての構成が interpreter/{interpretername} フォルダー構造から読み出され、単一の conf/interpreter.json ファイルにマージされることに注意してください (Zeppelin の管理者ユーザーはファイル内容を後で UI から変更できます)。これは標準的な Apache Zeppelin の動作であり、はじめて Zeppelin を起動する前に、interpreter/denodo/interpreter-setting.json ファイルで Denodo サーバーへのアクセスを構成することを強くお勧めします。

interpreter/denodo/interpreter-setting.json ファイルには、変更が必要になる可能性がある設定が主に 2 つあります。

  • default.url には、目的の VDP サーバーへの接続に使用される JDBC URI が含まれています。デフォルト値は、jdbc:vdb://localhost:9999/?noAuth=true です。

  • zeppelin.jdbc.denodo.database には、段落の実行に使用されるデフォルトデータベースの名前が含まれています (段落は実行対象のデータベースを後で別に指定できることに注意してください)。Zeppelin へのアクセスに使用される VDP ユーザーは、ここで構成されたデータベースへの接続権限を持つ必要があることに注意してください。デフォルト値は、admin です。

はじめての起動後は、管理者ユーザーが、このアプリケーションの [Interpreter] セクションにおける構成変更を担うことになります。

認証の構成

Denodo カスタマイズ Zeppelin アプリケーションの認証メカニズムは、Denodo のメインインタープリターがアクセスする VDP サーバーと統合されています。

認証は常に VDP サーバーで行われ、アプリケーションは、Denodo SSO 認証、Kerberos ベースの認証、または基本認証 (ユーザー + パスワード) を使用できます。デフォルトでは、基本認証のみが有効になっています。conf/zeppelin-site.xml ファイルで zeppelin.denodo.login.types プロパティを変更することで、この動作を変更し、許可する認証方法を構成することができます。このプロパティで指定可能な値は、BASICKERBEROS、DENODOSSO、および ALL です。このプロパティが定義されていない場合、すべてのログインタイプが有効になります。DENODOSSO 認証は、Denodo 8 以上のバージョンでのみ利用できます。

すべての認証方法が有効な場合、Denodo SSO が優先され、次に KERBEROS、BASIC の順となります。Denodo SSO の構成が有効な場合、Zeppelin は、Denodo SSO および構成済みの ID プロバイダーにより認証を行います。Denodo SSO が構成されていない、または構成が有効でない場合、次に実行される認証方法は Kerberos になります。そのため、有効な Kerberos トークンをオペレーティングシステムのインフラストラクチャから取得できるようブラウザーが構成されている場合、このアプリケーションは Kerberos を使用してログインを試みます。Denodo のインストール環境が Kerberos を使用するように構成されていない場合でも、こうした動作になります。そのため、ログインタイプが KERBEROS または ALL で構成され、ブラウザーが OS の Kerberos インフラストラクチャと統合されているが、VDP はそうでない場合に、ログインできなくなる可能性があります。

Zeppelin はログインタイプ ALL を使用するよう構成されているものの、DenodoSSO アプリケーションが動作していない場合、Zeppelin アプリケーションは Kerberos の使用を試みます。そして、ブラウザーが Kerberos インフラストラクチャと統合されていない場合は、Zeppelin アプリケーションはユーザー名とパスワードを使用する基本認証をデフォルトにします。

Zeppelin で DenodoSSO を構成するには、conf/zeppelin-site.xml ファイルで zeppelin.denodo.login.ssourl プロパティを確認する必要があります。これは Denodo SSO アプリケーションの URL で、デフォルトの値は http://localhost:9090/sso になりますが、ホストやポートを変更しなければならない場合があります。

DenodoSSO の構成には、Denodo Security Token Server を構成することが重要です。この構成の詳細については、DenodoSSO のマニュアルを参照してください。確認が必要な構成ファイルは、SSOConfiguration.properties、SSOTokenConfiguration.properties、および tokenJavaKeyStore.jks です。ID プロバイダーのリダイレクト URL を正しく構成することも重要であり、Zeppelin で構成された SSO の URL のホストが、ID プロバイダーで構成されたリダイレクト URL と同じであるかを確認してください。Denodo Security Token Server のロールの権限を VDP で構成する必要があります。このロールにより、Zeppelin からアクセスする必要があるデータベースにアクセスできなくてはいけません。

また、Microsoft の Web ブラウザーの SPNEGO 実装は、Kerberos や NTLM 認証メカニズムとネゴシエートを行うことにも注意してください。つまり、ブラウザーとサーバーがどちらも Kerberos をサポートしている場合、Kerberos が使用されますが、何らかの理由で使用できない場合は、ブラウザーは NTLM の使用を試みます。したがって、NTLM トークンが Zeppelin サーバーに送信されることがありますが、それは、ブラウザーが Kerberos を使用して認証できないからです。Chrome、Edge、Internet Explorer では、OS 設定を使用しているため、このような動作になります。Firefox の場合、ブラウザーは独自に構成されており、Kerberos が構成されていない時に NTLM を使用しません。ブラウザーが NTLM トークンを使用する場合、Zeppelin の認証メカニズムからエラーが返ります。このエラーは Chrome または Internet Explorer で発生するものであり、その解決策は、zeppelin.denodo.login.types プロパティを BASIC または KERBEROS に変更する、あるいは Firefox を使用することです。

もう 1 つ注意すべき点は、ログアウトです。Firefox などの一部のブラウザーでは、基本認証の期限が切れないため、ログアウトしようとすると、ブラウザーが認証ヘッダーを再度送信し、自動的に再ログインします。

このアプリケーションのスコープでは、Zeppelin ユーザーは 2 つの異なるロールを採用できます。「管理者ユーザー」と「データサイエンティストユーザー」です。「管理者ユーザー」は、インタープリターの作成や変更など、特定の構成を変更できます。「データサイエンティストユーザー」は、メモやジョブを実行できます。管理者ユーザーは、段落やジョブを実行することもできます。ユーザーが管理者になるには、Denodo で assignprivileges ロールを持つ必要があります。このロールは、Denodo 管理ツールの [Role Management] セクションで割り当てられます。

ノートブックストレージ

Apache Zeppelin はプラグイン可能なノートブックのストレージメカニズムを備えており、複数の実装を指定する zeppelin.notebook.storage 構成オプションで制御されます。

デフォルトでは、Zeppelin はノートブックおよび段落の情報を /notebook フォルダー内の json ファイルに格納します。この情報が Derby データベースに格納される場合、あまり利用されなくなると判断しました。そのため、新しく NotebookRepo org.apache.zeppelin.notebook.repo.DerbyDBNotebookRepo を追加しました。このストレージは、ファイル /conf/zeppelin-site.xml で、パラメーター zeppelin.notebook.storage を使用して構成されます。

<property>

  <name>zeppelin.notebook.storage</name>

  <value>org.apache.zeppelin.notebook.repo.DerbyDBNotebookRepo</value>

  <description>DerbyDB notebook persistence layer implementation</description>

</property>

その他すべてのノートブックストレージの実装は、新しい DerbyDBNotebookRepo の実装と同時に使用できます。構成パラメーターにこれらをカンマ区切りで追加するだけです。

他の実装が有効になった場合、両方の実装を使用してノートブックが格納されることに留意することが重要です。したがって、json ファイルが格納されているシステムで、引き続き json ファイルが公開されることになります。

ブラウザーからノートブックへのアクセス

ノートブックを起動すると、http://localhost:8080 でアクセスすることができます (必要に応じて、localhost をノートブックがインストールされたマシンの名前に置き換えてください)。

Zeppelin が起動するポートを変更する必要がある場合、または HTTPS でアクセスするよう Zeppelin を構成する場合は、conf/zeppelin-site.xml で構成を変更してください。

段落の実行

Denodo インタープリターの段落の実行について、いくつか変更を加えました。このインタープリターでは、各段落で Denodo とのコネクションを作成し、接続するデータベースを指定することができます。デフォルトでは、インタープリター構成の zeppelin.jdbc.denodo.database プロパティで定義されたデータベースを使用しますが、別のデータベースと接続する場合、データベースの名前をインタープリターの名前と連結して記述できます。フォーマットは、%denodo%DATABASE_NAME です。


付録 I: Kerberos 用ブラウザーの構成

Firefox

デフォルトでは、Firefox は SPNEGO 認証を有効にしていないため、Kerberos 認証は有効になっていません。したがって、手動でこれを有効にする必要があります。

Kerberos 認証を有効にする
  1. Firefox のアドレスバーで about:config に移動します。
  2. 高度な設定の変更について警告が表示された場合、[危険性を承知の上で使用する] をクリックします。
  3. 検索ボックスで「negotiate」と入力します。
  4. network.negotiate-auth.trusted-uris の値にドメイン名を設定します。
Kerberos 委任を有効にする
  1. Firefox のアドレスバーで about:config に移動します。
  2. 高度な設定の変更について警告が表示された場合、[危険性を承知の上で使用する] をクリックします。
  3. 検索ボックスで「negotiate」と入力します。
  4. network.negotiate-auth.delegation-uris の値をドメイン名に設定します。

ブラウザーを再起動して、すべてが機能していることを確認します。

Internet Explorer

Kerberos 認証を有効にする
  1. [ツール] -> [インターネット オプション] の順にクリックします。
  2. [詳細設定] タブに移動します。
  3. [統合 Windows 認証を使用する] チェックボックスをチェックします。

Kerberos 委任を有効にする
  1. [ツール] -> [インターネット オプション] の順にクリックします。
  2. [セキュリティ] タブ -> [ローカル イントラネット] -> [サイト] の順にクリックします。

  1. 対象サイトを追加します。

ブラウザーを再起動して、すべてが機能していることを確認します。

Chrome

Windows 版 Chrome は Internet Explorer の設定を使用するため、前のセクションで説明したように、Internet Explorer の [ツール] -> [インターネット オプション] ダイアログで構成します。

付録 II: Denodo JDBC ドライバーの更新

Denodo カスタマイズ Zeppelin ディストリビューションには、Denodo VDP JDBC ドライバー (denodo-vdp-jdbcdriver.jar) が既に同梱されており、interpreter/denodo フォルダーに格納されています。Denodo VDP サーバーにインストールされた更新プログラムに合わせるため、このドライバーの更新が必要になる場合があります。

Denodo VDP JDBC ドライバーを更新するには、Denodo Platform の lib/extensions/jdbc-drivers/vdp-VERSION ディレクトリに含まれているドライバーを取り出し、Zeppelin の interpreter/denodo フォルダーにコピーする必要があります。

付録 III: 追加インタープリターのインストール

Apache Zeppelin for Denodo スタンドアロンディストリビューションでは、事前にインストールされたインタープリター (angular、denodo、file、jdbc、md、python、sh、spark) がいくつか同梱されています。オリジナルのディストリビューションでは、インタープリターをインストールする Linux スクリプトが提供されており、Denodo のディストリビューションでは、Windows にインタープリターをインストールする新しいスクリプトを追加しています。

この新しいスクリプトは install-interpreter.cmd ですが、実行は Linux と同じになります。

コミュニティ管理のインタープリターをすべてインストールする

.\bin\install-interpreter.cmd --all

特定のインタープリターをインストールする

.\bin\install-interpreter.cmd --name md,shell,jdbc,python

コミュニティ管理のインタープリターのリストを入手する

.\bin\install-interpreter.cmd --list

一部のインタープリターには、使用できる JDK のバージョンに特定の制限があることに注意してください。こうした制限を考慮しないと、インタープリターのインストール中や実行中に、問題が発生する可能性があります。

付録 IV: Windows での Python インタープリターの使用

Python インタープリターは、Apache Zeppelin for Denodo - スタンドアロンディストリビューションに既に同梱されています。このインタープリターは、Python バージョン 3.7 まで対応しています。

Windows で使用するには、ディレクトリ「C:\tmp」が存在し、また Zeppelin を実行するユーザーがこのディレクトリへのアクセス権限を持っている必要があります。

付録 V: 複数の Denodo インタープリターの作成

複数の Denodo サーバーにクエリを実行する場合があります。これを行うには、このアプリケーションの [Interpreter] セクションで、新しい Denodo インタープリターを作成する必要があります。

  • Denodo インタープリターの名前は、必ず「denodo」で始まる必要があります。 
  • [Interpreter group] オプションで、「jdbc」を選択する必要があります。
  • default.driver」プロパティは、「com.denodo.vdp.jdbc.Driver」に設定する必要があります。 
  • default.url」プロパティは「jdbc:vdb://localhost:9999/?noAuth=true」に設定する必要があります。
  • プロパティ「zeppelin.jdbc.denodo.database」を追加し、デフォルトデータベースを構成する必要があります。

 

この構成を適用すると、新しい Denodo インタープリターでメモを作成できるようになります。

 

認証タイプにより、満たさなければならない要件があります。

 

  • 基本認証を使用する場合、クエリ実行のためにアクセスが必要なすべての VDP サーバーで、Zeppelin にログインするユーザーが存在する必要があります。パスワードは、すべての Denodo サーバーで同じにする必要があります。
  • Kerberos 認証を使用する場合、すべての VDP サーバーが、同じ SPN と 同じ KeyTab を使用して構成されていることが重要です。
  • Denodo SSO 認証を使用する場合、すべての VDP サーバーが、同じ Denodo SSO アプリケーションを使用していることが重要です。conf\SSOConfiguration.properties の sso.url プロパティは、同じ URL を指す必要があります。

新しい Denodo インタープリターを作成した後は、このアプリケーションの認証は、デフォルトの Denodo インタープリター用に構成された VDP サーバーで引き続き行われます。

他のすべてのインタープリターは、段落を実行する際に、同じ認証データを使用する必要があります。そのため、VDP サーバーの認証構成が同じであることが重要になります。

新しいインタープリターを使用する手順は以前と同じです。新しいメモを作成すると、新しい Denodo インタープリターが [Default Interpreter] で選択されます。デフォルトでは、段落を実行する際にインタープリター構成の zeppelin.jdbc.denodo.database プロパティで定義されたデータベースを使用しますが、別のデータベースと接続する場合、データベースの名前をインタープリターの名前と連結して記述できます。フォーマットは、%denodoXXX%DATABASE_NAME です。

新しい「denodo2」インタープリターを使用する特定のケースでは、このアプリケーションにログインすると、「denodo」インタープリターで構成された VDP サーバーで、認証が引き続き行われます。「denodo2」インタープリターで構成されたメモに入り、段落を実行すると、初期認証のデータを使用して新しいコネクションが作成されます。