Skip to Content

How to connect Lumira 1.X and 2.0 to Vora on Kerberos

This step-by-step guide has been derived from:

Known issues:

  • It is currently not possible to consume columns with datatype DECIMAL when using Simba JDBC driver with Vora

Prerequisites:

  • Vora client principal and keytab has been generated
  • Vora Thriftserver is running in KERBEROS mode
  • KDC server host is reachable by the Lumira workstation

 

  1. Copy the vora client principal keytab to the Lumira workstation

 

  1. On the workstation where Lumira is running create C:\Windows\LumiraJAAS.confwith following content:

 

Client {

com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="file:<Path/to/vora.keytab" principal="<voraPrincipal>@<REALM>" doNotPrompt=true;

};

 

Note: Path must start with file: and use forward slashes. For example: file:c:/windows/keytabs/vora.keytab

 

 

  1. Create file C:\Windows\krb5.ini file:
[libdefaults]
default_realm = <REALM>
dns_lookup_kdc = true
dns_lookup_realm = true
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
[realms]
AD.HADOOP = {
default_domain = <REALM>
kdc = <KDC_FQDN_HOST>
}

 

  1. Add the following lines to Lumira 1.X <Lumira_root_dir>/SAPLumira.ini or in case of Lumira 2.0 <Lumira_root_dir>/SBOPLumiraDiscovery.ini

 

-Djava.security.auth.login.config=C:\Windows\LumiraJAAS.conf
-Djava.security.krb5.conf=C:\Windows\krb5.ini

 

  1. Select File -> Preference -> SQL Driver -> Select “Generic JDBC driver” -> Install
  2. Select all files in the <Lumira_root_directory>/utilities/SparkJDBC directory
  3. Create new connection to Vora using Query with SQL:
  4. Choose the generic driver that just installed:
  1. Enter anything for username and password (it won’t be used)
  2. Set the JDBC class to simba.spark.jdbc4.Driver
  3. Define the JDBC connection string as follows:

 

jdbc:spark://<Thriftserver_FQDN_Hostname>:<ThirftserverPort>/default;CatalogSchemaSwitch=0;UseNativeQuery=1;AuthMech=1;KrbAuthType=1;KrbHostFQDN=<Thriftserver_FQDN_Hostname>;KrbRealm=<Kerberos Realm>;KrbServiceName=<Vora service principal used by the thriftserver>;

 

  1. In Advanced settings set the JDBC driver property:
    spark.vora.hive_emulation=true

 

  1. Connect with these settings and navigate the hierarchy CATALOG_VIEW -> Spark -> Default

Note that only in-memory tables registered using the syntax REGISTER TABLE <tableName> using com.sap.spark.vora via Vora Tools or beeline will be visible here.

 

  1. When selecting a table, the pre-generated SQL string will not be Vora syntax compatible and must be manually re-written by removing the “Spark” prefix and all wrapper double quotes

For example:
SELECT * FROM default.v2Table

 

 

To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

  1. Vishal Kuchhal

    Thanks Dimitri for this great article.

    I would just like to ask if we can access VORA timeseries, Doc store and graph engine in Lumira. We were able to access VORA tables and views created using Relational(new), in-memory(deprecated) and Disk Engine.

    Thanks again 🙂

    (0) 

Leave a Reply