Hi Obornik,
  Could you please retry it on the host machine(not in the docker container) 
first?
Then you can use the command to ensure this lib be included in the system : 
ldconfig -v | grep “libdrillodbc".

> 2021年6月16日 上午12:23,Dev - personal <[email protected]> 写道:
> 
> Hello,
> 
> I am trying to use drill with ODBC driver. I am using CentOS Linux release 
> 8.3.2011 in docker from image centos:8. Whenever I try to connect to drill 
> driver using isql -v "MapRDrillODBC", I get following error:
> 
> [01000][unixODBC][Driver Manager]Can't open lib 
> '/opt/mapr/drill/lib/64/libdrillodbc_sb64.so' : file not found
> [ISQL]ERROR: Could not SQLConnect
> 
> But the file libdrillodbc_sb64.so is clearly in the filesystem in that path.
> 
> I installed odbc driver using yum
> yum install unixODBC.x86_64 unixODBC-devel.x86_64 -y
> 
> I set up drill driver using setting from the docs 
> (https://drill.apache.org/docs/configuring-odbc-on-linux/)
> 
> I am using following Dockerfile setup:
> FROM centos:8
> 
> RUN yum install curl -y
> RUN curl -sL https://rpm.nodesource.com/setup_15.x | bash -
> RUN yum install nodejs -y
> 
> WORKDIR /usr/src/project
> COPY . .
> 
> # Install unixODBC driver manager
> RUN yum install -y make gcc*
> RUN yum install unixODBC.x86_64 unixODBC-devel.x86_64 -y
> 
> # ODBC drill driver setup
> RUN yum localinstall --nogpgcheck 
> ./lib/drill-odbc/driver/maprdrill-1.5.1.1002-1.el7.x86_64.rpm -y
> RUN mv ./lib/drill-odbc/config/mapr.drillodbc.ini ~/.mapr.drillodbc.ini
> RUN mv ./lib/drill-odbc/config/odbc.ini ~/.odbc.ini
> RUN mv ./lib/drill-odbc/config/odbcinst.ini ~/.odbcinst.ini
> RUN export ODBCINI=~/.odbc.ini
> RUN export MAPRDRILLINI=~/.mapr.drillodbc.ini
> RUN export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mapr/drill/lib/64
> 
> # cache is used to be able to mount node_modules dir to local machine for 
> development
> WORKDIR /usr/src/project/cache
> COPY package*.json ./
> RUN npm install --global node-gyp
> RUN npm install
> WORKDIR /usr/src/evee
> 
> EXPOSE 28201
> 
> COPY ./docker/dev/entrypoint.sh ./
> RUN chmod +x ./entrypoint.sh
> 
> odic.ini
> [ODBC]
> Trace=no
> 
> [ODBC Data Sources]
> MapRDrillODBC=MapR Drill ODBC Driver 64-bit
> 
> [MapRDrillODBC]
> # This key is not necessary and is only to give a description of the data 
> source.
> Description=MapR Drill ODBC Driver (64-bit) DSN
> # Driver: The location where the ODBC driver is installed to.
> Driver=/opt/mapr/drill/lib/64/libdrillodbc_sb64.so
> # The DriverUnicodeEncoding setting is only used for SimbaDM
> # When set to 1, SimbaDM runs in UTF-16 mode.
> # When set to 2, SimbaDM runs in UTF-8 mode.
> #DriverUnicodeEncoding=2
> # Values for ConnectionType, AdvancedProperties, Catalog, Schema should be 
> set here.
> # If ConnectionType is Direct, include Host and Port. If ConnectionType is 
> ZooKeeper, include ZKQuorum and ZKClusterID
> # They can also be specified on the connection string.
> # AuthenticationType: No authentication; Username; Plain; Kerberos; MapRSASL;
> ConnectionType=ZooKeeper
> HOST=
> PORT=
> ZKQuorum=zoo1:2181,zoo2:2181,zoo3:2181
> ZKClusterID=drillCluster
> AuthenticationType=No Authentication
> UID=[USERNAME]
> PWD=[PASSWORD]
> DelegationUID=
> KrbServiceName=mapr
> KrbServiceHost=
> krbSpnConfigurationsRequired=1
> AdvancedProperties=CastAnyToVarchar=true;HandshakeTimeout=5;QueryTimeout=180;TimestampTZDisplayTimezone=utc;ExcludedSchemas=sys,INFORMATION_SCHEMA;NumberOfPrefetchBuffers=5;
> Catalog=DRILL
> Schema=
> SSL=0
> DisableHostVerification=0
> DisableCertificateVerification=0
> TrustedCerts=/opt/mapr/drill/lib/64/cacerts.pem
> UseSystemTrustStore=0
> # The key, "UseExactTLSProtocolVersion", toggles between "Min_TLS" or 
> "TLSProtocol".
> # UseExactTLSProtocolVersion=1 indicates that the driver should use the exact 
> TLS Protocol version to communicate with the drillbit.
> # UseExactTLSProtocolVersion=0 indicates that the driver should use the 
> minimum TLS Protocol version to communicate with the drillbit.
> UseExactTLSProtocolVersion=0
> Min_TLS=
> TLSProtocol=
> 
> 
> odbcinst.ini
> [ODBC Drivers]
> MapRDrillODBC=Installed
> 
> [MapRDrillODBC]
> Description=MapR Drill ODBC Driver(64-bit)
> Driver=/opt/mapr/drill/lib/64/libdrillodbc_sb64.so
> 
> 
> 
> Could you please point me out, if this error can mean something else except 
> the missing file? Or do you have any idea what can cause the issue? If you 
> need more details, do not hesitate to contact me.
> 
> Thank you very much in advance for your cooperation,
> Filip Obornik

Reply via email to