USER MANUALS

外部 Hive メタストア

既存の Hive メタストアに含まれるテーブル定義に Denodo 組み込み MPP からアクセスする場合、その Hive メタストアを外部メタストアとして使用できます。

それには、手動で新しいカタログを定義します。具体的には、 presto/conf/catalog/presto/conf/catalog/external_hivems.properties などのプロパティファイルを作成します。ファイル名の external_hivems がカタログ名になります。

新しいカタログプロパティファイルは、以下に示すように、読み込むファイルまたはテーブルに応じてデフォルトで出荷されるカタログをコピーして作成できます。

  • Parquet ファイルの Hive テーブルにアクセスする場合、 hive.properties をコピーします。

  • Delta Lake テーブルにアクセスする場合、 delta.properties をコピーします。

  • Iceberg テーブルにアクセスする場合、 iceberg.properties をコピーします。

次に、 hive.metastore.uri プロパティに外部 Hive メタストアの URI を入力します。

通常、 hdfs-site.xml ファイルと core-site.xml ファイルは、 presto/conf/catalog に追加し、 hive.config.resources プロパティで参照します。

external_hivems.properties
connector.name=hive-hadoop2

hive.metastore.uri=thrift://acme:9083
hive.config.resources=/opt/presto-server/etc/catalog/core-site-external.xml,/opt/presto-server/etc/catalog/hdfs-site-external.xml

# Bulk Data Load
hive.allow-drop-table=true
hive.non-managed-table-writes-enabled=true

# Avoids exceptions in partitioned tables
hive.parquet.use-column-names=true

Kerberos

外部 Hive メタストアが Kerberos 認証を使用している場合、カタログプロパティファイルに追加のプロパティを構成する必要があります。

external_hivems.properties の Kerberos 構成
hive.metastore.authentication.type=KERBEROS
hive.metastore.service.principal=hive/_HOST@REALM
hive.metastore.client.principal=primary@REALM
hive.metastore.client.keytab=/opt/secrets/xxx.keytab

これにより、組み込み MPP は、keytab hive.metastore.client.keytab を使用して Kerberos プリンシパル hive.metastore.client.principal として Hive メタストアに接続し、Hive メタストアの ID が hive.metastore.service.principal と一致することを確認します。

keytab ファイルは、 presto/secrets フォルダに配置する必要があります。また、 krb5.conf は、 presto/conf/catalog/ フォルダに配置する必要があります。さらに、以下の構成プロパティを values.yaml に追加します。

krb5.conf 構成ファイル
presto:
  jvm:
    additionalJVMConfig: [
      -Djava.security.krb5.conf=/opt/presto-server/etc/catalog/krb5.conf
    ]

また、組み込み MPP が Kerberos 認証を使用して HDFS に接続する必要がある場合、カタログプロパティファイルで以下の追加プロパティを構成する必要があります。

external_hivems.properties の HDFS Kerberos 構成
hive.hdfs.authentication.type=KERBEROS
hive.hdfs.presto.principal=primary@REALM
hive.hdfs.presto.keytab=/opt/secrets/xxx.keytab

これにより、組み込み MPP は、keytab hive.hdfs.presto.keytab を使用して Kerberos プリンシパル hive.hdfs.presto.principal として HDFS に接続します。

keytab ファイルは、 presto/secrets フォルダに配置する必要があります。

hive.metastore.client.principalhive.hdfs.presto.principal の両方に同じプリンシパルを使用する場合、そのプリンシパルが、Hive メタストアだけでなく、HDFS にもアクセスできることを確認します。そうしないと、 Permission denied エラーが発生します。

Hadoop クラスタで hadoop.rpc.protection=privacy が必要とされる場合、カタログプロパティファイルに、以下に示すもう 1 つのプロパティを追加する必要があります。

external_hive.properties で HDFS ワイヤー暗号化を有効化
hive.hdfs.wire-encryption.enabled=true

詳細については、「 Hive セキュリティ構成 — Kerberos サポート 」を参照してください。

Add feedback