简体   繁体   English

Thrift API Java客户端与HBase连接

[英]thrift api java client connect with HBase

Packages uses: 软件包用途:

import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;
import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;
import org.apache.hadoop.hbase.thrift.generated.Hbase;
import org.apache.hadoop.hbase.thrift.generated.IOError;
import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;
import org.apache.hadoop.hbase.thrift.generated.Mutation;
import org.apache.hadoop.hbase.thrift.generated.TCell;
import org.apache.hadoop.hbase.thrift.generated.TRowResult;

import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;

Call Method 通话方式

public void start() {
            try {
                TTransport socket = new TSocket("host-name", 9090);// IP Host Name
                TProtocol protocol = new TBinaryProtocol(socket, true, true);// Note here
                Hbase.Client client = new Hbase.Client(protocol);
                socket.open();
                System.out.println("open");
                try {
                    System.out.println("scanning tables...");
                    for (byte[] name : client.getTableNames()) { 
                        //code
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    out.println(e.getMessage());
                }
                socket.close();
                out.println("close");
            } catch (TTransportException e) {
                e.printStackTrace();
                out.println(e.getMessage());
            } catch (TException e) {
                e.printStackTrace();
                out.println(e.getMessage());

            }
}    

Problem: 问题:

code java get error: invalid method name: 'getTableNames' i can't give list tables in Hbase maybe I have a problem on a missed package 代码Java获取错误:无效的方法名称:“ getTableNames”,我无法在Hbase中提供列表表,也许我对丢失的软件包有问题

thanks for helping 谢谢你的帮助

thanks, problem is solved, i used DemoClient.java in hbase-0.94.19.tar.gz\\hbase-0.94.19\\src\\examples\\thrift2 , this rar than i have installed on server. 谢谢,问题解决了,我在hbase-0.94.19.tar.gz \\ hbase-0.94.19 \\ src \\ examples \\ thrift2中使用了DemoClient.java ,这个rar比我已经安装在服务器上的要多。 and I added this dependency 我添加了这种依赖

    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-thrift</artifactId>
        <version>0.98.2-hadoop2</version>
        <type>jar</type>
    </dependency>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM