hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Josh Elser <els...@apache.org>
Subject Re: Hbase Thrift | Support to call DAO written in java from C++/C#
Date Wed, 25 Jan 2017 17:23:58 GMT
It's actually the first sentence on https://thrift.apache.org

"The Apache Thrift software framework, for scalable cross-language 
services development, combines a software stack with a code generation 
engine to build services that work efficiently and seamlessly between 
C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, 
JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages."

This means that you can write a client in any of these languages and 
have it communicate with a server using any of these languages.

Manjeet Singh wrote:
> I have read that tutorial but cross platform things not mentioned their
> On 24 Jan 2017 05:10, "Josh Elser"<elserj@apache.org>  wrote:
>
>> Would strongly suggest you read the Apache Thrift documentation.
>>
>> Manjeet Singh wrote:
>>
>>> Thanks Josh for writing
>>>
>>> I have DAL written in java we have requirement  to give common platform to
>>> other team (c++ and c#) these two teams also want to access same DAL for
>>> this I want to use thrift.
>>>
>>> I tried tutorials on Net and I am able to connect from both side java
>>> (Client and server) but I don't know how to connect with C++, also for
>>> this
>>> I did't genrate any code viea thrift.
>>>
>>>
>>> I simple start thrift which is coming with HDP distribution
>>>
>>> below is the java code
>>>
>>> public class ThriftClient {
>>> static CharsetDecoder decoder = null;
>>> public static Hbase.Client client=null;
>>> public static void main(String args[]){
>>> String host=<IP address>
>>> int port= 9090;
>>> try {
>>> TTransport transport = new TSocket(host, port);
>>>          TProtocol protocol = new TBinaryProtocol(transport, true, true);
>>>           client = new Hbase.Client(protocol);
>>>
>>>
>>> transport.open();
>>> test();
>>> } catch (TTransportException e) {
>>> e.printStackTrace();
>>> }}
>>> public static void test(){
>>> System.out.println("scanning tables...");
>>>       try {
>>> for (ByteBuffer name : client.getTableNames()) {
>>>      System.out.println("  found: " + utf8(name.array()));
>>>
>>> }
>>> } catch (IOError e) {
>>> e.printStackTrace();
>>> } catch (TException e) {
>>> e.printStackTrace();
>>> }
>>> }
>>>
>>>       private static String utf8(byte[] buf) {
>>>           try {
>>>           decoder = Charset.forName("UTF-8").newDecoder();
>>>               return decoder.decode(ByteBuffer.wrap(buf)).toString();
>>>           } catch (CharacterCodingException e) {
>>>               return "[INVALID UTF-8]";
>>>           }
>>>       }
>>>
>>>       private static byte[] bytes(String s) {
>>>           try {
>>>               return s.getBytes("UTF-8");
>>>           } catch (UnsupportedEncodingException e) {
>>>               e.printStackTrace();
>>>               return null;
>>>           }
>>>       }
>>> }
>>>
>>> Please guide me how can I genrate code for c++ (client) and server which
>>> will responsible to call my DAL
>>> PSI am using Java 8
>>> Hbase 1.1.2
>>>
>>>
>>> Thanks
>>> Manjeet
>>>
>>>
>>> On Mon, Jan 23, 2017 at 10:26 PM, Josh Elser<elserj@apache.org>   wrote:
>>>
>>>
>>>> Manjeet Singh wrote:
>>>>
>>>> I come to know about thrift but as per my understanding on thrift client
>>>>> and server should be on same language thrift only give direct access
to
>>>>> other language (correct me if I am wrong)
>>>>>
>>>>> You are incorrect. One of the features of Thrift is that the client and
>>>> server can be implemented in different languages. A Java client can talk
>>>> to
>>>> a Ruby server, a C++ client can talk to a Java server, etc.
>>>>
>>>>
>>>> if above statement is wrong so is it possible as showing in below image
>>>>
>>>>> Inline image 2
>>>>>
>>>>> Reminder: images are stripped by the mailing list.
>>>> second How can i generate c++ code from thrift ( I am using HDP which
>>>>
>>>>> already having hbase thrift so do I need to download separate thrift)
>>>>>
>>>>> You need to have the correct version of Thrift installed to generate
the
>>>> code for other languages (than Java which is bundled) from the IDL.
>>>>
>>>> See http://thrift.apache.org/ for more details on how to generate the
>>>> bindings in other languages.
>>>>
>>>> e.g. `thrift --gen<language>   <Thrift filename>`
>>>>
>>>>
>>>
>>>
>

Mime
View raw message