Building and Launching C Applications
This topic describes basic setup for building and launching C application using the
libMapRClient C API library
Prerequisites
The HPE Ezmeral Data Fabric Database
libMapRClient C API library is Data Fabric's extension of the libhbase C API
library). The libMapRClient header files are in this directory:
/opt/mapr/include/hbase
- Verify that the
mapr-clientpackage is installed on the node. Themapr-clientpackage must be installed on each node that builds an application. ThelibMapRClientheader files are in this directory:/opt/mapr/include/hbase. - Verify that both the
libMapRClientlibrary andlibjvmshared libraries are in the application’s library search path.
Building Applications
When building applications that use libMapRClient, run this
command:
gcc -o <application_name> <source_file> -I/opt/mapr/include/hbase -L/opt/mapr/lib/ -lMapRClient -L/usr/lib/jvm/java-7-sun/jre/lib/amd64/server -ljvm
For example, the following command builds the hello_hbase application
with the hello_hbase.c source code:
gcc -o hello_hbase hello_hbase.c -I/opt/mapr/include/hbase -L/opt/mapr/lib/ -lMapRClient -L/usr/lib/jvm/java-7-sun/jre/lib/amd64/server -ljvm
- The compiled libMapRClient is statically linked to the following third-party libraries: Crypto++: libcryptoapp.a (v5.6.2)Protobuf: libprotobuf-lite.a (v2.5.0)
- The
libMapRClientlibrary has dependencies onlibjvm, though a JVM is not instantiated. In general, thelibjvmlibrary is located within the JDK/JRE installation directory.
Launching Applications
Before launching an application, set this value for the environment variable
LD_LIBRARY_PATH:
/opt/mapr/lib:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server
If the client is on Windows, append the following directories to the
PATH environment variable:
-
$MAPR_HOME/lib -
$JAVA_HOME/bin/server
If the application uses the hb_connection_create_as_user API for
impersonation, set the MAPR_IMPERSONATION_ENABLED environment variable
to true.
What To Do Next
Launch the application!