一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - hbase訪問方式之java api

hbase訪問方式之java api

2021-01-13 14:29動力節點 Java教程

這篇文章主要介紹了hbase訪問方式之java api,需要的朋友可以參考下

Hbase的訪問方式

1、Native Java API:最常規和高效的訪問方式;

2、HBase Shell:HBase的命令行工具,最簡單的接口,適合HBase管理使用;

3、Thrift Gateway:利用Thrift序列化技術,支持C++,PHP,Python等多種語言,適合其他異構系統在線訪問HBase表數據;

4、REST Gateway:支持REST 風格的Http API訪問HBase, 解除了語言限制;

5、MapReduce:直接使用MapReduce作業處理Hbase數據;

6、使用Pig/hive處理Hbase數據。

常用Java API的用法:

1、加載配置

java" id="highlighter_853111">
?
1
2
3
4
5
Configuration config = HBaseConfiguration.create(); 
//可以自定義配置,也可以從自定義配置文件中讀取
/*config.set("hbase.zookeeper.property.clientPort", "4181");
config.set("hbase.zookeeper.quorum", "hadoop.datanode5.com,hadoop.datanode2.com,hadoop.datanode3.com");
config.set("hbase.master", "hadoop.datanode3.com\\:600000");*/

2、表的創建、表信息修改、表刪除

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
HBaseAdmin admin = new HBaseAdmin(config);
//創建表
HTableDescriptor htd = new HTableDescriptor(tableName);
htd.addFamily(new HColumnDescriptor("cf1"));
htd.addFamily(new HColumnDescriptor("cf2"));
admin.createTable(htd);
//修改表信息
admin.disableTable(tableName);
// modifying existing ColumnFamily
admin.modifyColumn(tableName, new HColumnDescriptor("cf1")); 
admin.enableTable(tableName); 
//刪除表
admin.disableTable(Bytes.toBytes(tableName));
admin.deleteTable(Bytes.toBytes(tableName));

3、添加記錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/** 在多次使用時,建議用HTablePool
 HTable table = new HTable(config, tableName);
 =>
 HTablePool pool = new HTablePool(config, 1000);
 HTableInterface table = pool.getTable(tableName);*/
HTable table = new HTable(config, tableName);
 
/**
 * 在插入操作時,默認不適用任何緩存
 * 可自定義使用緩存,以及緩存大小
 * 每個任務最后需要手工調用 flushCommits();
 */
/*table.setAutoFlush(false);
table.setWriteBufferSize(1024);*/
 
Put put1 = new Put(Bytes.toBytes(rowKey));
if (ts == 0) {
  put1.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), Bytes.toBytes(value));
} else {
    //自定義版本時,從自定義的版本號,類型為long
  put1.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), ts,Bytes.toBytes(value));
}
table.put(put1);
//table.flushCommits();

4、查詢,根據Rowkey查詢

?
1
2
3
4
Get get1 = new Get(Bytes.toBytes(rowKey));
Result result = table.get(get1);
System.out.println("get result:" + Bytes.toString(result.getValue(Bytes.toBytes(family), Bytes.toBytes(qualifier))));
Result[] result = table.get(List<Get>);//查詢指定Rowkey的多條記錄

5、查詢,指定條件和rowkey區間查詢

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Scan scan = new Scan();
//默認緩存大小為1,設置成一個合理的值,可以減少scan過程中next()的時間開銷,代價是客戶端的內存
scan.setCaching(500);
scan.setCacheBlocks(false);
//根據startRowKey、endRowKey查詢
//Scan scan = new Scan(Bytes.toBytes("startRowKey"), Bytes.toBytes("endRowKey"));
//rowKey之外的過濾條件,在List中可以add;
/**List<Filter> filters = new ArrayList<Filter>();
Filter filter = new SingleColumnValueFilter("familyName".getBytes(),
    "qualifierName".getBytes(),
    CompareOp.EQUAL,
    Bytes.toBytes("value"));
filters.add(filter);
scan.setFilter(new FilterList(filters));*/
ResultScanner scanner = table.getScanner(scan);
System.out.println("scan result list:");
for (Result result : scanner) {
  System.out.println(Bytes.toString(result.getRow()));
  System.out.println(Bytes.toString(result.getValue(Bytes.toBytes("data"), Bytes.toBytes("data1"))));
  System.out.println(Bytes.toString(result.getValue(Bytes.toBytes("data"), Bytes.toBytes("data2"))));
}
scanner.close();

總結

以上所述是小編給大家介紹的hbase訪問方式之java api,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.sina.com.cn/s/blog_9c6852670102wx03.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎最新永久免费网址 | 色天使亚洲综合在线观看 | 九九热免费在线观看 | 欧美一区二区三区不卡视频 | 男女男精品网站 | 国产精品探花一区在线观看 | 成人在线观看免费视频 | 久久日本片精品AAAAA国产 | 国产午夜免费 | 美女gif跪趴式抽搐动态图 | 特黄特级高清免费视频毛片 | 久久视频在线视频观看精品15 | 777午夜精品免费播放 | a毛片在线免费观看 | 国产第7页 | 色综合天天综合网看在线影院 | 成人午夜视频一区二区国语 | 日韩欧美色 | 深夜在线观看网站 | 天堂激情网 | 22sihu国产精品视频影视资讯 | 性xxxx欧美高清 | 色悠久久久| 双龙高h | 女仆色在线观看 | 398av影院视频在线 | 久久综合视频网站 | 波多野结衣作品在线观看 | 欧美最猛性xxxxx短视频 | 晚上禁用的十大黄台视频 | 免费lulu网站 | 亚洲国产成人精品无码区99 | 国内精品久久久久久不卡影院 | ai换脸造梦jennie | 欧美日韩亚洲区久久综合 | 无人区在线观看免费观看 | 免费一级欧美片片线观看 | 日本大尺度动漫在线观看缘之空 | 出水小说 | aaa毛片视频免费观看 | 亚洲精品在看在线观看 |