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

基于Java的HBase客戶端編程

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

本文以HBase 0.90.2為例,介紹如何在Windows系統,Eclipse IDE集成環境下,使用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. 搭建開發環境

  1. 運行Eclipse,創建一個新的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環境下進行HBase編程了。

3. HBase基本操作代碼示例

3.1 初始化配置

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

3.2 創建表

  1. /** 
  2.  * 創建表操作 
  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("表已經存在!"); 
  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("表創建成功!"); 
  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整裝待發 圖謀云計算
  2. Java 7是蜜糖還是毒藥?
  3. 選用Ibatis和Hibernate的區別
  4. JRuby和Java 7 我們可以期待什么
  5. 關于Eclipse使用64位Java 7崩潰的問題
責任編輯:艾婧 來源: 博客園
相關推薦

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

2012-10-17 09:50:47

HBase

2009-03-18 14:44:34

LinuxqTwitterTwitter

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監控Linux

2011-04-06 14:24:20

Nagios監控Linux

2011-08-17 10:10:59

2009-06-23 14:00:49

JavaFX開發

2024-01-17 19:05:44

mget優化數據庫

2012-08-20 09:57:11

JavaiQQ開源QQ

2014-08-11 16:35:35

KafkaJava客戶端

2023-02-16 08:00:00

數據流客戶端開發數據集

2010-05-31 10:11:32

瘦客戶端

2011-03-24 13:00:31

配置nagios客戶端

2011-03-02 14:36:24

Filezilla客戶端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区免费 | 久久久婷婷 | 91免费在线看 | 国产精品久久欧美久久一区 | 麻豆久久久9性大片 | 一区二区电影网 | 国产精品99久久久精品免费观看 | 久久精品亚洲欧美日韩久久 | 亚洲欧美综合网 | 亚洲国产精品va在线看黑人 | 伊人网站 | 国产视频福利一区 | 一区二区三区亚洲精品国 | 99久久久国产精品 | 国产精品久久久久久久免费大片 | 日本精品一区二区三区视频 | 精品视频在线观看 | 国产成人99久久亚洲综合精品 | 欧美视频在线观看 | 天天干b | 久久在线 | 999久久久国产精品 欧美成人h版在线观看 | 日韩a在线 | 国产日韩欧美在线一区 | 美女黄视频网站 | 一本在线| 黄网站在线观看 | 国产精品a一区二区三区网址 | 成人午夜精品 | 国产不卡视频在线 | 国产精品波多野结衣 | 日韩高清一区 | 亚洲国产情侣 | 999免费网站 | 99re在线播放 | www.久久.com| 国产一区二区在线免费观看 | 亚洲一二三区av | 日韩h | 先锋资源在线 | 99国产精品久久久 |