C++ native client for Impala and Hive, with Python / pandas bindings
Thrift C++ Python CMake Shell Perl C
Latest commit 7a43231 Sep 30, 2016 @tebeka tebeka committed with wesm Default to current user (#19)


hs2client: C++ Thrift client for Impala and Hive

Build Status travis build status

This is a new project to create a robust, high performance open source HiveServer2 client library in C++. In addition to being a useful component for other C++ projects needing to communicate with Hive, Impala, and any systems using the HiveServer2 protocol, we can also create CPU- and memory-efficient bindings for other languages, like Python and R.

There is work still remaining to bring the project to feature-completeness with other Hive and Impala driver libraries:

  • SSL support
  • SASL Thrift transport (for secure clusters, or unsecure clusters configured to use the SASL transport)
  • Tools for asynchronous result set fetching

Development bootstrap

To build standalone thirdparty dependencies, ensure you are using a C++11 compiler and run:

# Build thirdparty Thrift and googletest and set $THRIFT_HOME.

source thirdparty/set_thirdparty_env.sh

If you are using cloudera/native-toolchain, you can instead use an environment setup script like:

export BOOST_VERSION=1.57.0
export THRIFT_VERSION=0.9.0-p2
export GTEST_VERSION=20151222

if [[ $OSTYPE == "darwin"* ]]; then

export CC=$NATIVE_TOOLCHAIN/gcc-4.9.2/bin/gcc
export CXX=$NATIVE_TOOLCHAIN/gcc-4.9.2/bin/g++
export LD_LIBRARY_PATH=$NATIVE_TOOLCHAIN/gcc-4.9.2/lib64


Currently, only in-source builds are working:

cmake .
make -j4