外部 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
プロパティで参照します。
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 認証を使用している場合、カタログプロパティファイルに追加のプロパティを構成する必要があります。
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
に追加します。
presto:
jvm:
additionalJVMConfig: [
-Djava.security.krb5.conf=/opt/presto-server/etc/catalog/krb5.conf
]
また、組み込み MPP が Kerberos 認証を使用して HDFS に接続する必要がある場合、カタログプロパティファイルで以下の追加プロパティを構成する必要があります。
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.principal
と hive.hdfs.presto.principal
の両方に同じプリンシパルを使用する場合、そのプリンシパルが、Hive メタストアだけでなく、HDFS にもアクセスできることを確認します。そうしないと、 Permission denied
エラーが発生します。
Hadoop クラスタで hadoop.rpc.protection=privacy
が必要とされる場合、カタログプロパティファイルに、以下に示すもう 1 つのプロパティを追加する必要があります。
hive.hdfs.wire-encryption.enabled=true
詳細については、「 Hive セキュリティ構成 — Kerberos サポート 」を参照してください。