Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # user - Any  code example for access HBase using C++ except the out-of-date Democlient.cpp ?


Copy link to this message
-
Re: Any code example for access HBase using C++ except theout-of-date Democlient.cpp ?
Sergey Shelukhin 2013-03-04, 18:55
That looks correct. Do you want to file a JIRA and attach the patch?
Otherwise I can do it later today/tomorrow.

On Mon, Mar 4, 2013 at 1:29 AM, Kun Ling <[EMAIL PROTECTED]> wrote:

> Dear Sergey Shelukhin,
>    Thanks very much for your reply, and I have found out the reason.
>    I should put the -lthrift flag at the end of the command line, thanks
> to the stackoverflow problem:
> http://stackoverflow.com/questions/7337292/does-linking-switch-order-matters
> 。
>
>    And according to my experience, a modification of Makefile is needed to
> make DemoClient.cpp compile and run. Do you or some other ones have the
> same problem?
>
>   Thanks
>
>
> yours,
> Ling Kun
> =============   The modification =================================>
> diff --git a/hbase-examples/src/main/cpp/Makefile
> b/hbase-examples/src/main/cpp/Makefile
> index aab5951..30ffef4 100644
> --- a/hbase-examples/src/main/cpp/Makefile
> +++ b/hbase-examples/src/main/cpp/Makefile
> @@ -28,7 +28,7 @@ GEN_SRC = ./gen-cpp/Hbase.cpp \
>  default: DemoClient
>
>  DemoClient: DemoClient.cpp
> -       g++ -o DemoClient -I${THRIFT_DIR}  -I./gen-cpp -L${LIB_DIR}
> -Wl,-rpath,${LIB_DIR} -lthrift DemoClient.cpp ${GEN_SRC}
> +       g++ -o DemoClient -I${THRIFT_DIR}  -I./gen-cpp -L${LIB_DIR}
> -Wl,-rpath,${LIB_DIR} DemoClient.cpp ${GEN_SRC} -lthrift
>
>  clean:
>         rm -rf DemoClient
>
> ==================================================================>
>
>
> ------------------ Original ------------------
> From:  "Sergey Shelukhin"<[EMAIL PROTECTED]>;
> Date:  Tue, Feb 26, 2013 03:30 AM
> To:  "user"<[EMAIL PROTECTED]>;
>
> Subject:  Re: Any code example for access HBase using C++ except
> theout-of-date Democlient.cpp ?
>
>
>
> At some point few months ago, I think I was able to make cpp sample from
> trunk compile and link (against trunk).
> I think one of the problems on the way was that some HBase thrift classes
> got renamed between versions of thrift used before and after (in your case,
> 94 and current trunk).
> Can you check the thrift generated code, thrift headers you use to compile,
> and thrift you are actually linking against, for, respectively, usage,
> declaration and definition of this ctor?
> I am not sure how, you might be compiling against thrift headers of one
> version but linking against a different one...
>
> On Sun, Feb 24, 2013 at 5:19 PM, Kun Ling <[EMAIL PROTECTED]> wrote:
>
> > Dear All,
> >     I am writing for some C++ code example for using HBase.
> >
> >     After Google and look into the HBase Document, I found that C++ code
> > can  connect to HBase using Thrift Interface.
> >
> >     However, when compile the DemoClient.cpp within the latest HBase
> > release package, it seems that this file is out of date(plenty of APIs
> need
> > a new std::map<Text, Text> & attributes parameter ).
> >
> >     And I have also tried to replace  the DemoClient.cpp with the latest
> > trunk version. However, after some modification there are still link
> > problems when compile the code( undefined reference to
> > `apache::thrift::transport::TSocket::TSocket(std::string, int)', I have
> > passed the -lthrift parameter to gcc).
> >
> >   Is there anyone who can kindly show some can-work C++ code for HBase
> > connection?  Or does anyone have any experience on this error?
> >
> >
> >   Thanks.
> > Kun Ling
>