Drill JDBC Drivers
Download the Drill JDBC driver and use it on all platforms to connect BI tools, such as SQuirreL and Spotfire, to Drill. Drill also includes an embedded, open-source JDBC driver.
The downloadable Drill JDBC driver provides read-only access to Drill data sources and supports the security features described in Securing Drill.
mapr-drill
package, you can find the open-source JDBC driver files in the
following directories:$DRILL_HOME/jars/jdbc-driver/drill-jdbc-all-<drill-version>.jar
$DRILL_HOME/jars/drill-jdbc-<drill-version>.jar
Drill JDBC Driver Download
Use the version of the driver that correlates with the version of the installed Drill server. Although older versions of the driver may connect to an upgraded version of Drill, the older drivers do not include all the server features available in the newer drivers.
Drill Version | JDBC Version |
1.20.x.x | 1.6.14.1000 |
1.16.1.[200 or later] | 1.6.11.1008 |
1.16.1.[0-199] | 1.6.6.1008 |
1.16.0.x | 1.6.8.1011 |
1.16.0.x | 1.6.7.1010 ATTENTION This
driver supports JRE 8 only and includes updated driver classes. See Driver Class.
|
1.15.0 | 1.6.0.1001 |
1.14.0 | 1.6.0.1001 |
1.13.0 | 1.5.9.1018 |
1.12.0 | 1.5.8.1017 |
1.11.0 | 1.5.6.1012 |
1.10.0 | 1.5.3.1006 |
Driver Class
Driver Class
com.simba.drill.jdbc41.Driver
and
com.simba.drill.jdbc41.DataSource
.- For driver version 1.6.6.1009 and earlier, the correct driver classes are:
com.mapr.drill.jdbc41.Driver
com.mapr.drill.jdbc41.DataSource
- For driver version 1.6.7.1010, the correct driver classes are:
com.mapr.drill.jdbc.Driver
com.simba.drill.jdbc.DataSource
JDBC Connection String
schema
parameter in the connection string, as shown
in the following example:
jdbc:drill:zk=10.10.100.30:5181,10.10.100.31:5181,10.10.100.32:5181/drill/drillbits1;schema=hive
You
can also include the authentication mechanism in the connection string using the
AuthMech
or auth
parameter. For MapR-SASL, use
auth=MAPRSASL
.- If using the MapR-SASL or Plain authentication mechanism, you must add the Drill JDBC
JAR files and
/opt/mapr/lib/*
to the classpath of the third-party client tool, as shown in the following example for SQuirreL when the path to the driver isC:\driver\MapRDrillJDBC41-1.5.6.1012:
-cp "%SQUIRREL_CP%;C:\driver\MapRDrillJDBC41-1.5.6.1012\*;C:\opt\mapr\lib\*"
The driver JAR files should appear before
/opt/mapr/lib/*
in the classpath.
Using MapR-SASL for Authentication on Windows
Drill is automatically configured with Data Fabric security when you install Drill on a cluster configured with default security. To successfully connect to Drill from a Windows JDBC client, a user ticket must exist on the Windows client in the %TEMP% directory or in the location specified by the $MAPR_TICKETFILE_LOCATION environment variable.
The JDBC driver locates user tickets for the current Windows user in the default ticket location, %TEMP%, or in the location specified by the environment variable, $MAPR_TICKETFILE_LOCATION. See Tickets and Generating a Data Fabric User Ticket for more information.
Example
$ maprlogin password -user mapr
[Password for user 'mapr' at cluster 'Cluster1':]
The credentials for the mapr user in Cluster1 are written to /tmp/maprticket_1000.'C:\Users\TABETH~1\AppData\Local\Temp/maprticket_Tabetha Stephens'
To override this location, set the "MAPR_TICKETFILE_LOCATION" global variable for the Windows user.
Avoiding Driver Conflicts
$DRILL_HOME/jars/jdbc-driver/drill-jdbc-all-1.10.0.jar
$DRILL_HOME/jars/drill-jdbc-1.10.0.jar
Changing
the file extension to rename these files, as shown in the following example, prevents Drill
or any other application, such as SQLLine, from picking up the embedded
driver:$DRILL_HOME/jars/jdbc-driver/drill-jdbc-all-1.10.0.jar.original
$DRILL_HOME/jars/drill-jdbc-1.10.0.jar.original
Connecting to Drill via the Drill Shell (SQLLine)
Driver Limitations
When using MapR-SASL with JDBC or ODBC drivers, there is no way to specify the target
cluster name as part of the connection parameters. MapR-SASL reads the first entry in the
/opt/mapr/conf/mapr-clusters.conf
file and assumes it is the target
cluster name.
For example, if the mapr-clusters.conf
file has an entry for
'cluster1
' followed by an entry for 'cluster2
' and you
want to connect to a node in 'cluster2
', authentication fails. As a
workaround, manually switch the order of entries in the mapr-clusters.conf
file.