成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Java的HBase客戶端編程

開發(fā) 后端
本文以HBase 0.90.2為例,介紹如何在Windows系統(tǒng),Eclipse IDE集成環(huán)境下,使用Java語言,進行HBase客戶端編程,包含建立表、刪除表、插入記錄、刪除記錄、各種方式下的查詢操作等。

本文以HBase 0.90.2為例,介紹如何在Windows系統(tǒng),Eclipse IDE集成環(huán)境下,使用Java語言,進行HBase客戶端編程,包含建立表、刪除表、插入記錄、刪除記錄、各種方式下的查詢操作等。

1. 準備工作

  1. 下載后安裝jdk包(這里使用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008);
  2. 下載eclipse,解壓到本地(這里使用的是eclipse-java-helios-SR2-win32);
  3. 下載HBase包,解壓安裝包到本地(這里使用的是hbase-0.90.2)。

2. 搭建開發(fā)環(huán)境

  1. 運行Eclipse,創(chuàng)建一個新的Java工程“HBaseClient”,右鍵項目根目錄,選擇 “Properties”->“Java Build Path”->“Library”->“Add External JARs”,將HBase解壓后根目錄下的hbase-0.90.2.jar、hbase-0.90.2-tests.jar和lib子目錄下所有jar 包添加到本工程的Classpath下。
  2. 按照步驟1中的操作,將自己所連接的HBase的配置文件hbase-site.xml添加到本工程的Classpath中,如下所示為配置文件的一個示例:
    1. <configuration> 
    2. <property> 
    3. <name>hbase.rootdir</name> 
    4. <value>hdfs://hostname:9000/hbase</value> 
    5. </property> 
    6. <property> 
    7. <name>hbase.cluster.distributed</name> 
    8. <value>true</value> 
    9. </property> 
    10. <property> 
    11. <name>hbase.zookeeper.quorum</name> 
    12. <value>*.*.*.*, *.*.*.*, *.*.*.*</value> 
    13. </property> 
    14. <property skipInDoc="true"
    15. <name>hbase.defaults.for.version</name> 
    16. <value>0.90.2</value> 
    17. </property> 
    18. </configuration> 
  3. 下面可以在Eclipse環(huán)境下進行HBase編程了。

3. HBase基本操作代碼示例

3.1 初始化配置

  1. private static Configuration conf = null
  2. /** 
  3.  * 初始化配置 
  4.  */ 
  5. static { 
  6.     conf = HBaseConfiguration.create(); 

3.2 創(chuàng)建表

  1. /** 
  2.  * 創(chuàng)建表操作 
  3.  * @throws IOException 
  4.  */ 
  5. public void createTable(String tablename, String[] cfs) throws IOException { 
  6.     HBaseAdmin admin = new HBaseAdmin(conf); 
  7.     if (admin.tableExists(tablename)) { 
  8.         System.out.println("表已經(jīng)存在!"); 
  9.     } 
  10.     else { 
  11.         HTableDescriptor tableDesc = new HTableDescriptor(tablename); 
  12.         for (int i = 0; i < cfs.length; i++) { 
  13.             tableDesc.addFamily(new HColumnDescriptor(cfs[i])); 
  14.         } 
  15.         admin.createTable(tableDesc); 
  16.         System.out.println("表創(chuàng)建成功!"); 
  17.     } 

3.3 刪除表

  1. /** 
  2.  * 刪除表操作 
  3.  * @param tablename 
  4.  * @throws IOException 
  5.  */ 
  6. public void deleteTable(String tablename) throws IOException { 
  7.     try { 
  8.         HBaseAdmin admin = new HBaseAdmin(conf); 
  9.         admin.disableTable(tablename); 
  10.         admin.deleteTable(tablename); 
  11.         System.out.println("表刪除成功!"); 
  12.     } catch (MasterNotRunningException e) { 
  13.         e.printStackTrace(); 
  14.     } catch (ZooKeeperConnectionException e) { 
  15.         e.printStackTrace(); 
  16.     } 

3.4 插入一行記錄

  1. /** 
  2.  * 插入一行記錄 
  3.  * @param tablename 
  4.  * @param cfs 
  5.  */ 
  6. public void writeRow(String tablename, String[] cfs) { 
  7.     try { 
  8.         HTable table = new HTable(conf, tablename); 
  9.         Put put = new Put(Bytes.toBytes("rows1")); 
  10.         for (int j = 0; j < cfs.length; j++) { 
  11.             put.add(Bytes.toBytes(cfs[j]), 
  12.                     Bytes.toBytes(String.valueOf(1)), 
  13.                     Bytes.toBytes("value_1")); 
  14.             table.put(put); 
  15.         } 
  16.     } catch (IOException e) { 
  17.         e.printStackTrace(); 
  18.     } 

3.5 刪除一行記錄

  1. /** 
  2.  * 刪除一行記錄 
  3.  * @param tablename 
  4.  * @param rowkey 
  5.  * @throws IOException 
  6.  */ 
  7. public void deleteRow(String tablename, String rowkey) throws IOException { 
  8.     HTable table = new HTable(conf, tablename); 
  9.     List list = new ArrayList(); 
  10.     Delete d1 = new Delete(rowkey.getBytes()); 
  11.     list.add(d1); 
  12.     table.delete(list); 
  13.     System.out.println("刪除行成功!"); 

3.6 查找一行記錄

  1. /** 
  2.  * 查找一行記錄 
  3.  * @param tablename 
  4.  * @param rowkey 
  5.  */ 
  6. public static void selectRow(String tablename, String rowKey) 
  7.         throws IOException { 
  8.     HTable table = new HTable(conf, tablename); 
  9.     Get g = new Get(rowKey.getBytes()); 
  10.     Result rs = table.get(g); 
  11.     for (KeyValue kv : rs.raw()) { 
  12.         System.out.print(new String(kv.getRow()) + "  "); 
  13.         System.out.print(new String(kv.getFamily()) + ":"); 
  14.         System.out.print(new String(kv.getQualifier()) + "  "); 
  15.         System.out.print(kv.getTimestamp() + "  "); 
  16.         System.out.println(new String(kv.getValue())); 
  17.     } 

3.7 查詢表中所有行

  1. /** 
  2.  * 查詢表中所有行 
  3.  * @param tablename 
  4.  */ 
  5. public void scaner(String tablename) { 
  6.     try { 
  7.         HTable table = new HTable(conf, tablename); 
  8.         Scan s = new Scan(); 
  9.         ResultScanner rs = table.getScanner(s); 
  10.         for (Result r : rs) { 
  11.             KeyValue[] kv = r.raw(); 
  12.             for (int i = 0; i < kv.length; i++) { 
  13.                 System.out.print(new String(kv[i].getRow()) + "  "); 
  14.                 System.out.print(new String(kv[i].getFamily()) + ":"); 
  15.                 System.out.print(new String(kv[i].getQualifier()) + "  "); 
  16.                 System.out.print(kv[i].getTimestamp() + "  "); 
  17.                 System.out.println(new String(kv[i].getValue())); 
  18.             } 
  19.         } 
  20.     } catch (IOException e) { 
  21.         e.printStackTrace(); 
  22.     } 

原文鏈接:http://www.cnblogs.com/panfeng412/archive/2011/08/14/2137984.html

【編輯推薦】

  1. Java 8整裝待發(fā) 圖謀云計算
  2. Java 7是蜜糖還是毒藥?
  3. 選用Ibatis和Hibernate的區(qū)別
  4. JRuby和Java 7 我們可以期待什么
  5. 關(guān)于Eclipse使用64位Java 7崩潰的問題
責任編輯:艾婧 來源: 博客園
相關(guān)推薦

2009-06-12 19:18:08

REST客戶端框架JavaScript

2009-11-05 13:00:25

WCF客戶端

2009-12-22 18:18:11

WCF客戶端編程

2011-04-22 10:34:09

SimpleFrame

2009-03-18 14:44:34

LinuxqTwitterTwitter

2012-10-17 09:50:47

HBase

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2012-02-27 09:30:24

JavaMindTerm

2025-01-07 08:10:00

CefSharpWinformWindows

2011-03-21 14:53:36

Nagios監(jiān)控Linux

2011-04-06 14:24:20

Nagios監(jiān)控Linux

2011-08-17 10:10:59

2009-06-23 14:00:49

JavaFX開發(fā)

2024-01-17 19:05:44

mget優(yōu)化數(shù)據(jù)庫

2012-08-20 09:57:11

JavaiQQ開源QQ

2014-08-11 16:35:35

KafkaJava客戶端

2023-02-16 08:00:00

數(shù)據(jù)流客戶端開發(fā)數(shù)據(jù)集

2011-10-26 13:17:05

2011-03-24 13:00:31

配置nagios客戶端

2011-03-02 14:36:24

Filezilla客戶端
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 99热精品在线观看 | 91精品国产91久久久久久丝袜 | 国产美女精品 | 国产精品久久国产愉拍 | 久久精品国产免费看久久精品 | 国产三级精品三级在线观看四季网 | 亚洲一区在线播放 | 中文字幕成人 | 国产精品日日做人人爱 | 亚洲欧洲成人在线 | 亚洲一区二区三区四区五区中文 | 成人免费在线观看视频 | 欧美日韩精品久久久免费观看 | 久久99久久99久久 | 日韩字幕 | 国产一级一级 | 亚洲视频一 | 一区二区在线不卡 | 久久久精 | 91日日| 亚洲精品久| 午夜免费在线观看 | 国产成人精品一区二区三 | 午夜精品久久久久久久星辰影院 | 色射综合 | 亚洲精品视频网站在线观看 | 久久久久久网站 | 奇米av | 欧美在线网站 | 亚洲欧美在线观看 | 久久久99精品免费观看 | 天天视频成人 | 一区二区三区精品视频 | 99久久免费精品国产免费高清 | 亚洲国产欧美一区二区三区久久 | 一区二区三区欧美 | 最新国产精品精品视频 | www.99re5.com| 欧美日韩成人在线 | 欧美性jizz18性欧美 | 成人在线观看免费 |