hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Hadoop Wiki] Update of "Hive/HiveODBC" by EricHwang
Date Fri, 07 Aug 2009 02:53:50 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.

The following page has been changed by EricHwang:
http://wiki.apache.org/hadoop/Hive/HiveODBC

------------------------------------------------------------------------------
  === Software Requirements ===
  The following software components are needed for the successful compilation and operation
of the Hive ODBC driver:
   * '''Hive Server''' - a service through which clients may remotely issue Hive commands
and requests. The Hive ODBC driver depends on Hive Server to perform the core set of database
interactions. Hive Server is built as part of the Hive build process. More information regarding
Hive Server usage can be found [wiki:Hive/HiveServer here].
-  * '''Apache Thrift''' - a scalable cross-language software framework that enables the Hive
ODBC driver (specifically the Hive client) to communicate with the Hive Server. See here for
the details on [http://wiki.apache.org/thrift/ThriftInstallation Thrift Installation]. The
Hive ODBC driver was developed with Thrift trunk version r790732, but the latest revision
should also be fine. Make sure you note the Thrift install path during the Thrift build process
as this information will be needed during the Hive client build process. The Thrift install
path will be referred to as THRIFT_HOME.
+  * '''Apache Thrift''' - a scalable cross-language software framework that enables the Hive
ODBC driver (specifically the Hive client) to communicate with the Hive Server. See this link
for the details on [http://wiki.apache.org/thrift/ThriftInstallation Thrift Installation].
The Hive ODBC driver was developed with Thrift trunk version r790732, but the latest revision
should also be fine. Make sure you note the Thrift install path during the Thrift build process
as this information will be needed during the Hive client build process. The Thrift install
path will be referred to as THRIFT_HOME.
  
  === Driver Architecture ===
  Internally, the Hive ODBC Driver contains two separate components: Hive client, and the
unixODBC API wrapper.
   * '''Hive client''' - provides a set of C-compatible library functions to interact with
Hive Server in a pattern similar to those dictated by the ODBC specification. However, Hive
client was designed to be independent of unixODBC or any ODBC specific headers, allowing it
to be used in any number of generic cases beyond ODBC.
-  * '''unixODBC API wrapper''' - provides a layer on top of Hive client that directly implements
the ODBC API standard. The unixODBC API wrapper will be compiled into a shared object library,
which will be the final form of the Hive ODBC driver. This portion will remain a file attachment
on the associated JIRA until it can be checked into the unixODBC code repository: [https://issues.apache.org/jira/browse/HIVE-187
HIVE-187].
+  * '''unixODBC API wrapper''' - provides a layer on top of Hive client that directly implements
the ODBC API standard. The unixODBC API wrapper will be compiled into a shared object library,
which will be the final form of the Hive ODBC driver. The wrapper files will remain a file
attachment on the associated JIRA until it can be checked into the unixODBC code repository:
[https://issues.apache.org/jira/browse/HIVE-187 HIVE-187].
  
  NOTE: Hive client needs to be built and installed before the unixODBC API wrapper can compile
successfully.
  
@@ -74, +74 @@

    a.#2 If your system complains about {{{undefined symbols}}} during unixODBC testing (such
as with {{{isql}}} or {{{odbcinst}}}) after installation, try running {{{ldconfig}}} to update
your dynamic linker's runtime libraries.
   1.#4 If you only want to obtain the Hive ODBC driver shared object library:
    a. After compilation, the driver will be located at {{{<unixODBC_BUILD_DIR>/Drivers/hive/.libs/libodbchive.so.1.0.0}}}.
-   a. This may be copied to any other location as desired. Keep in mind that the Hive ODBC
driver has a dependency on the Hive client shared object library: {{{libhiveclient.so}}}.
+   a. This may be copied to any other location as desired. Keep in mind that the Hive ODBC
driver has a dependency on the Hive client shared object library: {{{libhiveclient.so}}} and
{{{libthrift.so.0}}}.
    a. You can manually install the unixODBC API wrapper by doing the following:
    {{{
    $ cp <unixODBC_BUILD_DIR>/Drivers/hive/.libs/libodbchive.so.1.0.0 <SYSTEM_INSTALL_DIR>
@@ -121, +121 @@

  
  === Current Status ===
   * Comments:
-  Please keep in mind that this is still an initial version and is still very rough around
the edges. However, it provides basic ODBC 3.51 API support for connecting, executing queries,
fetching, etc. This driver has been successfully tested on 32-bit and 64-bit linux machines
with iSQL. It has also been tested with partial success on enterprise applications such as
MicroStrategy. The driver consists of two sections: the Hive client and the unixODBC API wrapper.
The unixODBC portion will be uploaded as a separate attachment that will not be part of this
repository (for licensing reasons).
+  Please keep in mind that this is still an initial version and is still very rough around
the edges. However, it provides basic ODBC 3.51 API support for connecting, executing queries,
fetching, etc. This driver has been successfully tested on 32-bit and 64-bit linux machines
with iSQL. It has also been tested with partial success on enterprise applications such as
MicroStrategy. Due to licensing reasons, the unixODBC API wrapper files will be uploaded as
a separate JIRA attachment that will not be part of this code repository.
   * Limitations:
+   * Only support for Linux operating systems
    * No support for Unicode
-   * Not thread safe
    * No support for asynchronous execution of queries
-   * Does not check for memory allocation errors
    * Does not support pattern matching for functions such as SQLColumns and SQLTables; requires
exact matches.
    * Hive Server is currently not thread safe (see JIRA HIVE-80: https://issues.apache.org/jira/browse/HIVE-80).
This will prevent the driver from safely making multiple connections to the same Hive Server.
We need to resolve this issue to allow the driver to operate properly.
-  * ODBC API Function Support:
+  * ODBC API Function Support (does anyone know how to remove the linking from the function
names?):
    * SQLAllocConnect - supported
    * SQLAllocEnv   - supported
    * SQLAllocHandle - supported

Mime
View raw message