Thanks Carl,
i could test ODBC driver for Hive following what you suggested as 1)

Ariel

On Wed, Sep 8, 2010 at 4:59 AM, Carl Steinbach <c...@cloudera.com> wrote:

> Hi Ariel,
>
> Here are a couple more things to try:
>
> 1) Force libhiveodbc.so to be loaded first by setting the LD_PRELOAD
> environment library:
>
> % LD_PRELOAD=/usr/local/unixODBC/lib/libodbchive.so isql -v Hive
>
> It turns out that SQLAllocEnv is defined in both libodbchive.so *and*
> libodbc.so. I have noticed that if libodbc.so gets loaded first its
> definition of SQLAllocEnv tends to stick, blocking the later loading of the
> same symbols defined in libodbchive.so. Setting LD_PRELOAD to point to the
> hive odbc library is a convenient work around for this problem.
>
> 2) Set the LD_DEBUG environment variable and run isql:
>
> % LD_DEBUG=files isql -v Hive
>
> Setting this variable causes the dl* functions to dump logging information
> about what they are doing. Setting it to "files" will cause the dl*
> functions to print out the names of files as they are loaded, as well as
> information about any unresolved symbols.
>
> Hope this helps.
>
> Carl
>
> On Tue, Sep 7, 2010 at 2:05 PM, Ning Zhang <nzh...@facebook.com> wrote:
>
>> Something you can check out are:
>>   - Did you compiled and deployed your code in different environment
>> (Linux/C compier version)? If so there might incompatibility issues in the
>> kernel/C .so files
>>   - Can you check 'ldd isql' and see which .so files it loads?
>> Particularly libodbc.so should be the one coming with unixODBC. If you
>> installed other ODBC driver manager and their LD paths are before
>> unixODBC's, isql may got linked to the correct .so file. In addition, you
>> can 'ldd' libodbchive.so etc. to see if there are missing dependent .so
>> files as well.
>>
>> On Sep 7, 2010, at 12:44 PM, Ariel Leiva wrote:
>>
>> All three .so files can be found in LD_LIBRARY_PATH and i am still getting
>> the same error. Thanks for your suggestion.
>>
>> On Tue, Sep 7, 2010 at 1:41 AM, Ning Zhang <nzh...@facebook.com> wrote:
>>
>>> It looks like isql cannot load libodbchive.so. Please make sure that all
>>> three .so files libodbchive.so, libhiveclient.so, and libthrift.so can be
>>> found in LD_LIBRARY_PATH.
>>>
>>>
>>> On Sep 4, 2010, at 1:31 PM, Ariel Leiva wrote:
>>>
>>> Hi, i built Hive odbc driver following
>>> http://wiki.apache.org/hadoop/Hive/HiveODBC and wanted to test it with
>>> isql, but i get the following error:
>>>
>>> [ISQL]ERROR: Could not SQLAllocEnv
>>>
>>> I set LD_LIBRARY_PATH so libhiveclient.so can be found correctly.
>>> I also tried,
>>> dltest libodbchive.so SQLAllocEnv which succeeds with
>>> dltest libodbchive.so SQLAllocEnv
>>> SUCCESS: Loaded libodbchive.so
>>> SUCCESS: Found SQLAllocEnv
>>>
>>> Location of odbc.ini in my system is /usr/local/unixODBC/etc/odbc.ini and
>>> its content is
>>> [Hive]
>>> Driver = /usr/local/unixODBC/lib/libodbchive.so
>>> Description = Hive Driver v1
>>> DATABASE = default
>>> HOST = localhost
>>> PORT = 10000
>>> FRAMED = 0
>>>
>>> Ouput of odbcinst -j is
>>> unixODBC 2.2.14
>>> DRIVERS............: /usr/local/unixODBC/etc/odbcinst.ini
>>> SYSTEM DATA SOURCES: /usr/local/unixODBC/etc/odbc.ini
>>> FILE DATA SOURCES..: /usr/local/unixODBC/etc/ODBCDataSources
>>> USER DATA SOURCES..: /root/.odbc.ini
>>> SQLULEN Size.......: 4
>>> SQLLEN Size........: 4
>>> SQLSETPOSIROW Size.: 2
>>>
>>> And output of odbcinst -q -s -n Hive is:
>>> [Hive]
>>> Driver=/usr/local/unixODBC/lib/libodbchive.so
>>> Description=Hive Driver v1
>>> DATABASE=default
>>> HOST=localhost
>>> PORT=10000
>>> FRAMED=0
>>>
>>> Can anybody help me with this error?
>>> Thanks in advance
>>> Ariel
>>>
>>>
>>>
>>
>>
>

Reply via email to