Azure Data Lake Gen 2¶
Before deploying the Denodo Lakehouse Accelerator (formerly known as Denodo Embedded MPP) on Azure Kubernetes Service check Denodo Lakehouse Accelerator Azure Checklist to make sure you have everything you need.
There are four options to deploy a Denodo Lakehouse Accelerator that will access Azure Data Lake Storage Gen2 datasets:
The recommended one: Provide Azure Workload Identity configuration directly in Presto and Metastore
core-site.xml.Azure Workload Identities (formerly “Azure AD pod identity”) writes OAuth 2.0 tokens to a file only accessible from the executing pod (
/var/run/secrets/azure/tokens/azure-identity-token). The issued credentials can be used to authenticate. The Azure Portal/CLI is used to create the service identity.You have to provide the following properties to the
kubectl create secretcommand before the Lakehouse Accelerator is deployed:ENV Variable
Description
AZURE_TENANT_ID
Optional MSI Tenant ID
AZURE_CLIENT_ID
Optional Client ID
AZURE_FEDERATED_TOKEN_FILE
Token file path
kubectl create secret generic mpp-credentials \ --from-literal=METASTORE_DB_PASSWORD=hive \ --from-literal=AZURE_TENANT_ID=azuretenantid \ --from-literal=AZURE_CLIENT_ID=azureclientid \ --from-literal=AZURE_FEDERATED_TOKEN_FILE=azurefederatedtokenfile
As this option cannot be fully configured via
values.yaml, you must also add the following configuration properties directly into the Presto and Metastorecore-site.xmlfiles:<property> <name>fs.azure.account.auth.type</name> <value>OAuth</value> </property> <property> <name>fs.azure.account.oauth.provider.type</name> <value>org.apache.hadoop.fs.azurebfs.oauth2.WorkloadIdentityTokenProvider</value> </property> <property> <name>fs.azure.account.oauth2.msi.tenant</name> <value>${env.AZURE_TENANT_ID}</value> </property> <property> <name>fs.azure.account.oauth2.client.id</name> <value>${env.AZURE_CLIENT_ID}</value> </property> <property> <name>fs.azure.account.oauth2.token.file</name> <value>${env.AZURE_FEDERATED_TOKEN_FILE}</value> </property>
Run
helm installsentencehelm install lakehouseaccelerator lakehouseaccelerator/
Provide MSI Tenant ID and Client ID in the
kubectl create secretcommand.Used when the Denodo Lakehouse Accelerator will run in Azure Kubernetes Service and will access Data Lake Storage gen2 using Azure Managed Identities (formerly “Managed Service Identities”).
You have to provide the following properties to the
kubectl create secretcommand before the Lakehouse Accelerator is deployed:ENV Variable
Description
AZURE_OAUTH_MSI_TENANT_ID
MSI Tenant ID
AZURE_OAUTH_CLIENT_ID
Client ID
kubectl create secret generic mpp-credentials --from-literal=METASTORE_DB_PASSWORD=hive --from-literal=AZURE_OAUTH_MSI_TENANT_ID=azureoauthmsitenantid --from-literal=AZURE_OAUTH_CLIENT_ID=azureoauthclientid
It’s also necessary to set true the
objectStorage.azure.managedIdentities.enabledproperty in values.yamlRun
helm installsentencehelm install lakehouseaccelerator lakehouseaccelerator/
Provide OAuth2 client credentials to the
kubectl create secretcommand.You have to provide the following properties to the
kubectl create secretcommand before the Lakehouse Accelerator is deployed:ENV Variable
Description
AZURE_OAUTH_DIRECTORY_ID(*)
Microsoft Directory ID or Tenant ID
AZURE_OAUTH_CLIENT_ID
Client ID
AZURE_OAUTH_CLIENT_SECRET
Client Secret
(*) Note that AZURE_OAUTH_DIRECTORY_ID is
https://login.microsoftonline.com/${env.AZURE_OAUTH_DIRECTORY_ID}/oauth2/tokenkubectl create secret generic mpp-credentials --from-literal=METASTORE_DB_PASSWORD=hive --from-literal=AZURE_OAUTH_DIRECTORY_ID=azureoauthdirectoryid --from-literal=AZURE_OAUTH_CLIENT_ID=azureoauthclientid --from-literal=AZURE_OAUTH_CLIENT_SECRET=azureoauthclientsecret
It’s also necessary to set true the
objectStorage.azure.oauth2ClientCredentials.enabledproperty in values.yamlRun
helm installsentencehelm install lakehouseaccelerator lakehouseaccelerator/
Provide the Azure credentials for the Shared Key authentication method to the
kubectl create secretcommand before the Lakehouse Accelerator is deployed:ENV Variable
Description
ABFS_STORAGE_KEY
Azure Data Lake Gen 2 Storage Key
It’s also necessary to set true the
objectStorage.azure.sharedKey.enabledand add the Azure Data Lake Gen 2 Storage Account in theobjectStorage.azure.sharedKey.accountproperties invalues.yaml.Run
helm installsentencehelm install lakehouseaccelerator lakehouseaccelerator/