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 > > > > > > > > > >