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:

  • SAP note 2210624 – How do I configure SAP Lumira for Kerberos Authentication?
  • Section 4.1.9 of the SAP Vora 1.4 Admin guide
  • Simba JDBC driver configuration guide

Known issues:

  • There is a known issue with reading columns with datatype DECIMAL when using Simba JDBC driver with Vora. The solution is to download the newest version of the driver and replace the driver in /<Lumira_root_directory>/utilities/SparkJDBC/

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.conf with 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
[realms]
<REALM> = {
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 com.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