Should be confirmed but yes, dDrillExplorer most likely makes use of iodbc
only and not unixODBC.

Regarding the unixODBC stuff, my guess is that libodbcinst.so is not in
your LD_LIBRARY_PATH. But you most likely have libodbcinst.so.1.
So, please give it a try changing your .mapr.drillodbc.ini :

#   SimbaDM / unixODBC
ODBCInstLib=libodbcinst.so.1

You should then be able to use isql :

isql "Sample MapR Drill DSN 64"

Result being :

| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SCHEMA_NAME


                                                                          |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| INFORMATION_SCHEMA


                                                                           |
| cp.default


                                                                           |
| dfs.default


                                                                          |
| dfs.root


                                                                           |
| dfs.tmp


                                                                          |
| sys


                                                                          |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
SQLRowCount returns -1
6 rows fetched

To investigate dynamic linking, you can use the following :
strace isql "Sample MapR Drill DSN 64"

This show where the libraries are actually searched at execution time.



2016-08-31 12:50 GMT+02:00 Nicolas Paris <nipari...@gmail.com>:

> Krystal, Sékine, thanks for your help. Pease find more informations :
>
> *$dpkg -s unixodbc*
> Package: unixodbc
> Status: install ok installed
> Priority: optional
> Section: database
> Installed-Size: 111
> Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com>
> Architecture: amd64
> Multi-Arch: foreign
> Version: 2.2.14p2-5ubuntu5
> Depends: libc6 (>= 2.14), libreadline6 (>= 6.0), odbcinst1debian2 (>=
> 2.2.11-3), libodbc1 (>= 2.2.14p2-3)
> Conflicts: unixodbc-bin (<< 2.2.4-1)
>
> *$locate libodbcinst*
> /usr/lib/x86_64-linux-gnu/libodbcinst.a
> /usr/lib/x86_64-linux-gnu/libodbcinst.so
> /usr/lib/x86_64-linux-gnu/libodbcinst.so.1
> /usr/lib/x86_64-linux-gnu/libodbcinst.so.1.0.0
>
> *$echo $LD_LIBRARY_PATH *
> /usr/local/lib:/usr/lib/:/opt/mapr/drillodbc/lib/64/:/usr/
> lib/x86_64-linux-gnu/
>
> *$head -100 /etc/mapr.drillodbc.ini*
> [Driver]
> DisableAsync=0
> DriverManagerEncoding=UTF-16
> ErrorMessagesPath=/opt/mapr/drillodbc/ErrorMessages
> LogLevel=2
> LogPath=/tmp/drilllog/
> SwapFilePath=/tmp
> #   SimbaDM / unixODBC
> ODBCInstLib=libodbcinst.so
>
> *$sudo ldconfig -v | grep "odbc"*
> /sbin/ldconfig.real: Ne peut évaluer par stat /lib/i686-linux-gnu: Aucun
> fichier ou dossier de ce type
> /sbin/ldconfig.real: Ne peut évaluer par stat /usr/lib/i686-linux-gnu:
> Aucun fichier ou dossier de ce type
> /sbin/ldconfig.real: Chemin « /lib/x86_64-linux-gnu » donné plus d'une fois
> /sbin/ldconfig.real: Chemin « /usr/lib/x86_64-linux-gnu » donné plus d'une
> fois
> /sbin/ldconfig.real: /lib/i386-linux-gnu/ld-2.19.so is the dynamic linker,
> ignoring
>
> /sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.19.so is the dynamic
> linker, ignoring
>
>     libodbccr.so.1 -> libodbccr.so.1.0.0
>     libodbc.so.1 -> libodbc.so.1.0.0
>     libodbcinst.so.1 -> libodbcinst.so.1.0.0
>
> *$/opt/mapr/drillodbc/DrillExplorer/DrillExplorer*
> Java Classpath:
> /opt/mapr/drillodbc/DrillExplorer/app/DrillExplorer.jar:libs/hadoop-
> common-0.23.9.jar:libs/jna.jar:libs/json-20141113.jar:
> resources/Version.txt:resources/images/cftable.ico:
> resources/images/cftable2.png:resources/images/csv.png:
> resources/images/database.ico:resources/images/database.png:
> resources/images/file.ico:resources/images/folder.ico:
> resources/images/json.png:resources/images/parquet.png:
> resources/images/table.ico:resources/images/tsv.png:
> resources/images/view.ico
> Exception in thread "JavaFX Application Thread" java.lang.RuntimeException:
> java.lang.reflect.InvocationTargetException
>     at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1762)
>     at
> javafx.fxml.FXMLLoader$ControllerMethodEventHandler.
> handle(FXMLLoader.java:1645)
>     at
> com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(
> CompositeEventHandler.java:86)
>     at
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(
> EventHandlerManager.java:238)
>     at
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(
> EventHandlerManager.java:191)
>     at
> com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(
> CompositeEventDispatcher.java:59)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:58)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:56)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:56)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:56)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
>     at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
>     at javafx.event.Event.fireEvent(Event.java:198)
>     at javafx.scene.Node.fireEvent(Node.java:8216)
>     at javafx.scene.control.Button.fire(Button.java:185)
>     at
> com.sun.javafx.scene.control.behavior.ButtonBehavior.
> mouseReleased(ButtonBehavior.java:182)
>     at
> com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.
> handle(BehaviorSkinBase.java:96)
>     at
> com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.
> handle(BehaviorSkinBase.java:89)
>     at
> com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.
> handleBubblingEvent(CompositeEventHandler.java:218)
>     at
> com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(
> CompositeEventHandler.java:80)
>     at
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(
> EventHandlerManager.java:238)
>     at
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(
> EventHandlerManager.java:191)
>     at
> com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(
> CompositeEventDispatcher.java:59)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:58)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:56)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:56)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(
> BasicEventDispatcher.java:56)
>     at
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(
> EventDispatchChainImpl.java:114)
>     at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
>     at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
>     at javafx.event.Event.fireEvent(Event.java:198)
>     at javafx.scene.Scene$MouseHandler.process(Scene.java:3724)
>     at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3452)
>     at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1728)
>     at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2461)
>     at
> com.sun.javafx.tk.quantum.GlassViewEventHandler$
> MouseEventNotification.run(GlassViewEventHandler.java:348)
>     at
> com.sun.javafx.tk.quantum.GlassViewEventHandler$
> MouseEventNotification.run(GlassViewEventHandler.java:273)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(
> GlassViewEventHandler.java:382)
>     at com.sun.glass.ui.View.handleMouseEvent(View.java:553)
>     at com.sun.glass.ui.View.notifyMouse(View.java:925)
>     at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
>     at
> com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(
> GtkApplication.java:126)
>     at com.sun.glass.ui.gtk.GtkApplication$$Lambda$43/
> 202720134.run(Unknown
> Source)
>     at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.reflect.InvocationTargetException
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 62)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:483)
>     at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
>     at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:483)
>     at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
> at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1759)
>     ... 51 more
> *Caused by: java.lang.UnsatisfiedLinkError: Unable to load library
> 'iodbc':
> Native library (linux-x86-64/libiodbc.so)* not found in resource path
> ([file:/opt/mapr/drillodbc/DrillExplorer/app/DrillExplorer.jar,
> file:/opt/mapr/drillodbc/DrillExplorer/app/libs/hadoop-common-0.23.9.jar,
> file:/opt/mapr/drillodbc/DrillExplorer/app/libs/jna.jar,
> file:/opt/mapr/drillodbc/DrillExplorer/app/libs/json-20141113.jar,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/Version.txt,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/cftable.ico,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/cftable2.png,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/csv.png,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/database.ico,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/database.png,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/file.ico,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/folder.ico,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/json.png,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/parquet.png,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/table.ico,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/tsv.png,
> file:/opt/mapr/drillodbc/DrillExplorer/app/resources/images/view.ico])
>     at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271)
>     at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
>     at com.sun.jna.Library$Handler.<init>(Library.java:147)
>     at com.sun.jna.Native.loadLibrary(Native.java:414)
>     at com.sun.jna.Native.loadLibrary(Native.java:393)
>     at com.simba.odbc.ODBCConnection$DrillODBC.<clinit>(Unknown Source)
>     at com.simba.odbc.ODBCUtils.getDataSources(Unknown Source)
>     at com.simba.drill.DRConnection.getDataSources(Unknown Source)
>     at
> com.simba.schemaexplorer.ConnectionPaneController.populateDSNList(Unknown
> Source)
>     at com.simba.schemaexplorer.SchemaExplorerController.connect(Unknown
> Source)
>
>
>
> Le mar. 30 août 2016 à 22:58, Sékine Coulibaly <scoulib...@gmail.com> a
> écrit :
>
> > Nicolas,
> >
> > Additionally to what Krystal pointed at, on Linux platforms you can try
> > this :
> > sudo ldconfig -v | grep "odbc"
> >
> > This will yield a non-empty result if dynamic linker can find the dynamic
> > library related to odbc. If nothing is returned, issuing the following
> > command will help refresh ldconfig's cache :
> > sudo ldconfig
> >
> > Sekine
> >
> > 2016-08-30 19:18 GMT+02:00 Krystal Nguyen <kngu...@maprtech.com>:
> >
> > > Hi Nicolas,
> > >
> > > ODBC should work with unixODBC driver manager.  Does the
> > "libodbcinst.so.1"
> > > library file exists on your node and it's path specified in the
> > > "LD_LIBRARY_PATH" variable.  I am using unixODBC-2.2.14 it is working
> > fine
> > > for me.  I use the following setting in mapr.drillodbc.ini:
> > >
> > > #   SimbaDM / unixODBC
> > > ODBCInstLib=libodbcinst.so
> > >
> > > Thanks,
> > > Krystal
> > >
> > > On Tue, Aug 30, 2016 at 10:07 AM, Nicolas Paris <nipari...@gmail.com>
> > > wrote:
> > >
> > > > Hello,
> > > >
> > > > I am testing ODBC connexion thought Drill Explorer.
> > > > It works ok with iodbc installed.
> > > >
> > > > However I cannot make it working with unixODBC.
> > > > I get this error :
> > > >  Unable to load library 'iodbc': Native library
> > > (linux-x86-64/libiodbc.so)
> > > >
> > > > I have specified in the mapr.drillodbc.ini  to use unixODBC
> > > > ODBCInstLib=libodbcinst.so.1
> > > >
> > > > Does it mean iodbc is the only working client ?
> > > > Or does it mean Drill Explorer only works with iodbc ?
> > > >
> > > > Thanks by advance
> > > >
> > >
> >
>

Reply via email to