教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

Java通过thrift连接hbase

来源:网络收集 时间:2026-05-04
导读: 1.安装thrift依赖包 使用root登陆linux, 1.1执行指令: yum -y install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel 结果如下图所示: 1.2执行指令 sudo curl ftp://http:

1.安装thrift依赖包

使用root登陆linux, 1.1执行指令:

yum -y install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel 结果如下图所示:

1.2执行指令 sudo

curl ftp://http://doc.guandang.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/monkeyiq:/centos6updates/CentOS_CentOS-6/noarch/autoconf-2.69-12.2.noarch.rpm > autoconf-2.69-12.2.noarch.rpm 结果如下图所示:

1.3执行指令

yum -y install autoconf-2.69-12.2.noarch.rpm 结果如下图所示:

1.4执行指令 yum -y install git 结果如下:

2.安装thrift

使用hadoop

用户登陆linux 2.1 执行指令

git clone https://http://doc.guandang.net/repos/asf/thrift.git

2.2执行指令 cd thrift

git checkout -b thrift-0.9.1 0.9.1

2.3执行指令

./bootstrap.sh

2.4执行指令

./configure

2.5执行指令 make

2.6修改 /etc/sudoers,增加用户hadoop的配置

2.7执行指令

sudo make install

2.8执行指令

thrift –version

3.创建java api 3.1 下载 hbase源代码 版本为 hbase-0.96.2-src.tar.gz 将当前目录切换到

$HBASE_HOME/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift 执行指令

thrift --gen java Hbase.thrift

3.2 启动

hbase thrift

服务 hbase thrift -p 9090 start

3.3.得到libthrift-0.9.1.jar

进入 /home/hadoop/thrift/lib/java 运行 ant

进入 /home/hadoop/thrift/lib/java/build 得到 libthrift-0.9.1.jar 如下图所示:

3.4 下载 slf4j-api-1.7.7.jar 和 slf4j-jdk14-1.7.7.jar 下载地址 http://doc.guandang.net/download.html

3.5 创建工程 chapter15 导入 3.3 和 3.4 步骤得到的 jar 包

AbstractHBaseThriftService.java 文件

package cn.dataguru.hadoop.hbase.thrift; import java.util.List; import java.util.Map; import org.apache.hadoop.hbase.thrift.generated.Hbase; 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; public abstract class AbstractHBaseThriftService { protected static final String CHARSET = "UTF-8"; private String host = "localhost"; private int port = 9090; private final TTransport transport; protected final Hbase.Client client; public AbstractHBaseThriftService() { transport = new TSocket(host, port); TProtocol protocol = new TBinaryProtocol(transport, true, true); client = new Hbase.Client(protocol); } public AbstractHBaseThriftService(String host, int port) { super(); transport = new TSocket(host, port); TProtocol protocol = new TBinaryProtocol(transport, true, true); client = new Hbase.Client(protocol); } public void open() throws TTransportException { if(transport != null) { transport.open(); } } public void close() { if(transport != null) { transport.close(); } }

public abstract List<String> getTable

s() throws TException;

public abstract void update(String table, String rowKey, boolean writeT oWal, String fieldName, String fieldValue, Map<String, String> attributes) throws TException; public abstract void update(String table, String rowKey, boolean writeT oWal, Map<String, String> fieldNameValues, Map<String, String> attributes) throws TException;

public abstract void deleteCell(String table, String rowKey, boolean wr iteToWal, String column, Map<String, String> attributes) throws TException; public abstract void deleteCells(String table, String rowKey, boolean w riteToWal, List<String> columns, Map<String, String> attributes) throws TExcepti on;

public abstract void deleteRow(String table, String rowKey, Map<String, String> attributes) throws TException;

public abstract int scannerOpen(String table, String startRow, List<Str ing> columns, Map<String, String> attributes) throws TException; public abstract int scannerOpen(String table, String startRow, String s topRow, List<String> columns, Map<String, String> attributes) throws TException; public abstract int scannerOpenWithPrefix(String table, String startAnd Prefix, List<String> columns, Map<String, String> attributes) throws TException; public abstract int scannerOpenTs(String table, String startRow,

List<String> columns, long timestamp, Map<String, String> attri butes) throws TException; public abstract int scannerOpenTs(String table, String startRow, String stopRow, List<String> columns, long timestamp, Map<String, String> attri butes) throws TException;

public abstract List<TRowResult> scannerGetList(int id, int nbRows) thr ows TException; public abstract List<TRowResult> scannerGet(int id) throws TException;

public abstract List<TRowResult> getRow(String table, String row, Map<String, String> attributes) throws TException; public abstract List<TRowResult> getRows(String table, List<String> rows, Map<String, String> attributes) throws T Exception; public abstract List<TRowResult> getRowsWithColumns(String table, List<String> rows, List<String> columns, Map<String, Strin g> attributes) throws TException;

public abstract void scannerClose(int id) throws TException;

/** * Iterate result rows(just for test purpose) * @param result */ public abstract void iterateResults(TRowResult result); }

HBaseThriftClient.java

package cn.dataguru.hadoop.hbase.thrift; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java …… 此处隐藏:8842字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java通过thrift连接hbase.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1445486.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)