當前位置:首頁 » 編程語言 » hbase的javaapi

hbase的javaapi

發布時間: 2022-03-15 17:35:27

❶ HBase 下面怎麼運行java程序

HBase提供了對HBase進行一系列的管理涉及到對表的管理、數據的操作java api。
常用的API操作有:
1、 對表的創建、刪除、顯示以及修改等,可以用HBaseAdmin,一旦創建了表,那麼可以通過HTable的實例來訪問表,每次可以往表裡增加數據。
2、 插入數據
創建一個Put對象,在這個Put對象里可以指定要給哪個列增加數據,以及當前的時間戳等值,然後通過調用HTable.put(Put)來提交操作,子猴在這里提請注意的是:在創建Put對象的時候,你必須指定一個行(Row)值,在構造Put對象的時候作為參數傳入。
3、 獲取數據
要獲取數據,使用Get對象,Get對象同Put對象一樣有好幾個構造函數,通常在構造的時候傳入行值,表示取第幾行的數據,通過HTable.get(Get)來調用。
4、 瀏覽每一行
通過Scan可以對表中的行進行瀏覽,得到每一行的信息,比如列名,時間戳等,Scan相當於一個游標,通過next()來瀏覽下一個,通過調用HTable.getScanner(Scan)來返回一個ResultScanner對象。HTable.get(Get)和HTable.getScanner(Scan)都是返回一個Result。Result是一個
KeyValue的鏈表。

❷ 如何使用Java API操作Hbase

先導入hbase的相關jar包。

再根據api進行操作。

package com.util;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.HTablePool;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseUtil {
public static Configuration configuration;
static {
configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum", "192.168.1.103");
configuration.set("hbase.master", "192.168.1.103:600000");
}

public static void main(String[] args) throws IOException {
createTable("abc");
insertData("abc");
QueryAll("abc");
}

/**
* 創建表
* @param tableName
*/
public static void createTable(String tableName) {
System.out.println("start create table ......");
try {
HBaseAdmin hBaseAdmin = new HBaseAdmin(configuration);
if (hBaseAdmin.tableExists(tableName)) {// 如果存在要創建的表,那麼先刪除,再創建
hBaseAdmin.disableTable(tableName);
hBaseAdmin.deleteTable(tableName);
System.out.println(tableName + " is exist,detele....");
}
HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
tableDescriptor.addFamily(new HColumnDescriptor("column1"));
tableDescriptor.addFamily(new HColumnDescriptor("column2"));
tableDescriptor.addFamily(new HColumnDescriptor("column3"));
hBaseAdmin.createTable(tableDescriptor);

hBaseAdmin.close();
} catch (MasterNotRunningException e) {
e.printStackTrace();
} catch (ZooKeeperConnectionException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("end create table ......");
}

/**
* 插入數據
* @param tableName
* @throws IOException
*/
public static void insertData(String tableName) throws IOException {
System.out.println("start insert data ......");
Connection connection = ConnectionFactory.createConnection(configuration);
Table table = connection.getTable(TableName.valueOf(tableName));
Put put = new Put("112233bbbcccc".getBytes());// 一個PUT代表一行數據,再NEW一個PUT表示第二行數據,每行一個唯一的ROWKEY,此處rowkey為put構造方法中傳入的值
put.add("column1".getBytes(), null, "aaa".getBytes());// 本行數據的第一列
put.add("column2".getBytes(), null, "bbb".getBytes());// 本行數據的第三列
put.add("column3".getBytes(), null, "ccc".getBytes());// 本行數據的第三列
try {
table.put(put);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("end insert data ......");
}

/**
* 刪除一張表
* @param tableName
*/
public static void dropTable(String tableName) {
try {
HBaseAdmin admin = new HBaseAdmin(configuration);
admin.disableTable(tableName);
admin.deleteTable(tableName);
} catch (MasterNotRunningException e) {
e.printStackTrace();
} catch (ZooKeeperConnectionException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
/**
* 根據 rowkey刪除一條記錄
* @param tablename
* @param rowkey
*/
public static void deleteRow(String tablename, String rowkey) {
try {
HTable table = new HTable(configuration, tablename);
List list = new ArrayList();
Delete d1 = new Delete(rowkey.getBytes());
list.add(d1);

table.delete(list);
System.out.println("刪除行成功!");

} catch (IOException e) {
e.printStackTrace();
}

}

/**
* 組合條件刪除
* @param tablename
* @param rowkey
*/
public static void deleteByCondition(String tablename, String rowkey) {
//目前還沒有發現有效的API能夠實現 根據非rowkey的條件刪除 這個功能能,還有清空表全部數據的API操作

}

/**
* 查詢所有數據
* @param tableName
* @throws IOException
*/
public static void QueryAll(String tableName) throws IOException {
Connection connection = ConnectionFactory.createConnection(configuration);
Table table = connection.getTable(TableName.valueOf(tableName));
try {
ResultScanner rs = table.getScanner(new Scan());
for (Result r : rs) {
System.out.println("獲得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列:" + new String(keyValue.getFamily())
+ "====值:" + new String(keyValue.getValue()));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 單條件查詢,根據rowkey查詢唯一一條記錄
* @param tableName
*/
public static void QueryByCondition1(String tableName) {

HTablePool pool = new HTablePool(configuration, 1000);
HTable table = (HTable) pool.getTable(tableName);
try {
Get scan = new Get("abcdef".getBytes());// 根據rowkey查詢
Result r = table.get(scan);
System.out.println("獲得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列:" + new String(keyValue.getFamily())
+ "====值:" + new String(keyValue.getValue()));
}
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 單條件按查詢,查詢多條記錄
* @param tableName
*/
public static void QueryByCondition2(String tableName) {

try {
HTablePool pool = new HTablePool(configuration, 1000);
HTable table = (HTable) pool.getTable(tableName);
Filter filter = new SingleColumnValueFilter(Bytes
.toBytes("column1"), null, CompareOp.EQUAL, Bytes
.toBytes("aaa")); // 當列column1的值為aaa時進行查詢
Scan s = new Scan();
s.setFilter(filter);
ResultScanner rs = table.getScanner(s);
for (Result r : rs) {
System.out.println("獲得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列:" + new String(keyValue.getFamily())
+ "====值:" + new String(keyValue.getValue()));
}
}
} catch (Exception e) {
e.printStackTrace();
}

}

/**
* 組合條件查詢
* @param tableName
*/
public static void QueryByCondition3(String tableName) {

try {
HTablePool pool = new HTablePool(configuration, 1000);
HTable table = (HTable) pool.getTable(tableName);

List<Filter> filters = new ArrayList<Filter>();

Filter filter1 = new SingleColumnValueFilter(Bytes
.toBytes("column1"), null, CompareOp.EQUAL, Bytes
.toBytes("aaa"));
filters.add(filter1);

Filter filter2 = new SingleColumnValueFilter(Bytes
.toBytes("column2"), null, CompareOp.EQUAL, Bytes
.toBytes("bbb"));
filters.add(filter2);

Filter filter3 = new SingleColumnValueFilter(Bytes
.toBytes("column3"), null, CompareOp.EQUAL, Bytes
.toBytes("ccc"));
filters.add(filter3);

FilterList filterList1 = new FilterList(filters);

Scan scan = new Scan();
scan.setFilter(filterList1);
ResultScanner rs = table.getScanner(scan);
for (Result r : rs) {
System.out.println("獲得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列:" + new String(keyValue.getFamily())
+ "====值:" + new String(keyValue.getValue()));
}
}
rs.close();

} catch (Exception e) {
e.printStackTrace();
}

}

}

❸ eclipse與hbase連接不上,想用java的API來連接HBase,進行簡單的增刪改查,卻實現不了。求大神指點

hadoop里不帶hbase、hdfs和zookeeper這些么?
找個帶的全裝了吧
我看你用的是cdh,裝個cdh5免費版吧,還有控制台界面可以看

❹ 如何在java中實現hbase介面

使用maven+idea進行管理

maven

<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>

<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shaded-client</artifactId> <version>1.2.3</version> </dependency>

❺ 用java api對hbase的操作有幾種形式

通過對Hbase API的使用,下面例子舉例了常見對HBase的操作,如下所示:

[java] view plain
package net.csdn.jtlyuan;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Re

❻ 如何使用Java API操作Hbase

1. HBaseConfiguration是每一個hbase client都會使用到的對象,它代表的是HBase配置信息。它有兩種構造方式:
public HBaseConfiguration()
public HBaseConfiguration(final Configuration c)
2. HBaseAdmin來創建表。HBaseAdmin負責表的META信息處理。HBaseAdmin提供了createTable這個方法:
public void createTable(HTableDescriptor desc)
3. addFamily方法增加family
public void addFamily(final HColumnDescriptor family)
4. 刪除表
刪除表也是通過HBaseAdmin來操作,刪除表之前首先要disable表。
disableTable和deleteTable分別用來disable和delete表。
5. 查詢數據
單條查詢是通過rowkey在table中查詢某一行的數據。HTable提供了get方法來完成單條查詢。
批量查詢是通過制定一段rowkey的范圍來查詢。HTable提供了個getScanner方法來完成批量查詢。
public Result get(final Get get)
public ResultScanner getScanner(final Scan scan)
6. 插入數據 HTable通過put方法來插入數據。
public void put(final Put put) throws IOException
public void put(final List puts) throws IOException
7. 切分表
HBaseAdmin提供split方法來將table 進行split.
public void split(final String tableNameOrRegionName)

❼ 我自己寫java代碼調用hbase的api來讀寫hbase 跟 寫maprece來讀寫hbase,哪個效率高高在哪裡

如果你自己用「調」api,來讀寫hbase的話,我覺得具體考慮的話是任務能否最終實現的問題了,畢竟maprece所做的工作很多,它自己的master,zookeeper,hbase的master之間的通信,計算任務的rece和mapping,細節太多,考慮到maprece通常處理的數據量,即便不考慮fault tolerant 都不一定能有效協調各個任務,更何況怎麼可能不考慮?...所以,自己用java來實現的話,也許是個不錯的學習過程,但是基本出不了東西,也就沒有實用的可能...

❽ 如何使用java api操作hbase

一般情況下,我們使用Linux的shell命令,就可以非常輕松的操作Hbase,例如一些建表,建列簇,插值,顯示所有表,統計數量等等,但有時為了提高靈活性,我們也需要使用編程語言來操作Hbase,當然Hbase通過Thrift介面提供了對大多數主流編程語言的支持,例如C++,PHP,Python,Ruby等等,那麼本篇,散仙給出的例子是基於Java原生的API操作Hbase,相比其他的一些編程語言,使用Java操作Hbase,會更加高效一些,因為Hbase本身就是使用Java語言編寫的。轉載
下面,散仙給出源碼,以供參考:

package com.hbase;

import java.util.ArrayList;
import java.util.List;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes;

/**
* @author 三劫散仙
*
* **/
public class Test {

static Configuration conf=null;
static{

conf=HBaseConfiguration.create();//hbase的配置信息
conf.set("hbase.zookeeper.quorum", "10.2.143.5"); //zookeeper的地址

}

public static void main(String[] args)throws Exception {

Test t=new Test();
//t.createTable("temp", new String[]{"name","age"});
//t.insertRow("temp", "2", "age", "myage", "100");
// t.getOneDataByRowKey("temp", "2");
t.showAll("temp");

}

/***
* 創建一張表
* 並指定列簇
* */
public void createTable(String tableName,String cols[])throws Exception{
HBaseAdmin admin=new HBaseAdmin(conf);//客戶端管理工具類
if(admin.tableExists(tableName)){
System.out.println("此表已經存在.......");
}else{
HTableDescriptor table=new HTableDescriptor(tableName);
for(String c:cols){
HColumnDescriptor col=new HColumnDescriptor(c);//列簇名
table.addFamily(col);//添加到此表中
}

admin.createTable(table);//創建一個表
admin.close();
System.out.println("創建表成功!");
}
}

/**
* 添加數據,
* 建議使用批量添加
* @param tableName 表名
* @param row 行號
* @param columnFamily 列簇
* @param column 列
* @param value 具體的值
*
* **/
public void insertRow(String tableName, String row,
String columnFamily, String column, String value) throws Exception {
HTable table = new HTable(conf, tableName);
Put put = new Put(Bytes.toBytes(row));
// 參數出分別:列族、列、值
put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),
Bytes.toBytes(value));

table.put(put);
table.close();//關閉
System.out.println("插入一條數據成功!");
}

/**
* 刪除一條數據
* @param tableName 表名
* @param row rowkey
* **/
public void deleteByRow(String tableName,String rowkey)throws Exception{
HTable h=new HTable(conf, tableName);
Delete d=new Delete(Bytes.toBytes(rowkey));
h.delete(d);//刪除一條數據
h.close();
}

/**
* 刪除多條數據
* @param tableName 表名
* @param row rowkey
* **/
public void deleteByRow(String tableName,String rowkey[])throws Exception{
HTable h=new HTable(conf, tableName);

List<Delete> list=new ArrayList<Delete>();
for(String k:rowkey){
Delete d=new Delete(Bytes.toBytes(k));
list.add(d);
}
h.delete(list);//刪除
h.close();//釋放資源
}

/**
* 得到一條數據
*
* @param tableName 表名
* @param rowkey 行號
* ***/
public void getOneDataByRowKey(String tableName,String rowkey)throws Exception{
HTable h=new HTable(conf, tableName);

Get g=new Get(Bytes.toBytes(rowkey));
Result r=h.get(g);
for(KeyValue k:r.raw()){

System.out.println("行號: "+Bytes.toStringBinary(k.getRow()));
System.out.println("時間戳: "+k.getTimestamp());
System.out.println("列簇: "+Bytes.toStringBinary(k.getFamily()));
System.out.println("列: "+Bytes.toStringBinary(k.getQualifier()));
//if(Bytes.toStringBinary(k.getQualifier()).equals("myage")){
// System.out.println("值: "+Bytes.toInt(k.getValue()));
//}else{
String ss= Bytes.toString(k.getValue());
System.out.println("值: "+ss);
//}

}
h.close();

}

/**
* 掃描所有數據或特定數據
* @param tableName
* **/
public void showAll(String tableName)throws Exception{

HTable h=new HTable(conf, tableName);

Scan scan=new Scan();
//掃描特定區間
//Scan scan=new Scan(Bytes.toBytes("開始行號"),Bytes.toBytes("結束行號"));
ResultScanner scanner=h.getScanner(scan);
for(Result r:scanner){
System.out.println("==================================");
for(KeyValue k:r.raw()){

System.out.println("行號: "+Bytes.toStringBinary(k.getRow()));
System.out.println("時間戳: "+k.getTimestamp());
System.out.println("列簇: "+Bytes.toStringBinary(k.getFamily()));
System.out.println("列: "+Bytes.toStringBinary(k.getQualifier()));
//if(Bytes.toStringBinary(k.getQualifier()).equals("myage")){
// System.out.println("值: "+Bytes.toInt(k.getValue()));
//}else{
String ss= Bytes.toString(k.getValue());
System.out.println("值: "+ss);
//}

}
}
h.close();

}

}

顯示所有數據的列印輸出如下:

==================================
行號: 1
時間戳: 1385597699287
列簇: name
列: myname
值: 秦東亮
==================================
行號: 2
時間戳: 1385598393306
列簇: age
列: myage
值: 100
行號: 2
時間戳: 1385597723900
列簇: name
列: myname
值: 三劫散仙

由此,可以看出Hbase的對外的API提供介面,是非常簡單易用的。

❾ hbase單機模式下,使用java API遠程連接hbase的問題。

首先你應該看Master進程是否已經成功啟動,檢查下master的60010監控界面。這日誌報的是連接拒絕 ,或者關閉防火牆

極有可能是你PC機網路無法連接到虛擬機里邊,你可以從本機telnet下虛擬機上master的埠,看下能連上不

❿ 如何使用Java API操作Hbase

  1. 先導入hbase的相關jar包。

  2. 再根據api進行操作。

  3. packagecom.util;

    importjava.io.IOException;
    importjava.util.ArrayList;
    importjava.util.List;

    importorg.apache.hadoop.conf.Configuration;
    importorg.apache.hadoop.hbase.HBaseConfiguration;
    importorg.apache.hadoop.hbase.HColumnDescriptor;
    importorg.apache.hadoop.hbase.HTableDescriptor;
    importorg.apache.hadoop.hbase.KeyValue;
    importorg.apache.hadoop.hbase.MasterNotRunningException;
    importorg.apache.hadoop.hbase.TableName;
    importorg.apache.hadoop.hbase.ZooKeeperConnectionException;
    importorg.apache.hadoop.hbase.client.Connection;
    importorg.apache.hadoop.hbase.client.ConnectionFactory;
    importorg.apache.hadoop.hbase.client.Delete;
    importorg.apache.hadoop.hbase.client.Get;
    importorg.apache.hadoop.hbase.client.HBaseAdmin;
    importorg.apache.hadoop.hbase.client.HTable;
    importorg.apache.hadoop.hbase.client.HTablePool;
    importorg.apache.hadoop.hbase.client.Put;
    importorg.apache.hadoop.hbase.client.Result;
    importorg.apache.hadoop.hbase.client.ResultScanner;
    importorg.apache.hadoop.hbase.client.Scan;
    importorg.apache.hadoop.hbase.client.Table;
    importorg.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
    importorg.apache.hadoop.hbase.filter.Filter;
    importorg.apache.hadoop.hbase.filter.FilterList;
    importorg.apache.hadoop.hbase.filter.SingleColumnValueFilter;
    importorg.apache.hadoop.hbase.util.Bytes;

    publicclassHBaseUtil{

    ;
    static{
    configuration=HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.property.clientPort","2181");
    configuration.set("hbase.zookeeper.quorum","192.168.1.103");
    configuration.set("hbase.master","192.168.1.103:600000");
    }

    publicstaticvoidmain(String[]args)throwsIOException{
    createTable("abc");
    insertData("abc");
    QueryAll("abc");
    }

    /**
    *創建表
    *@paramtableName
    */
    publicstaticvoidcreateTable(StringtableName){
    System.out.println("startcreatetable......");
    try{
    HBaseAdminhBaseAdmin=newHBaseAdmin(configuration);
    if(hBaseAdmin.tableExists(tableName)){//如果存在要創建的表,那麼先刪除,再創建
    hBaseAdmin.disableTable(tableName);
    hBaseAdmin.deleteTable(tableName);
    System.out.println(tableName+"isexist,detele....");
    }
    =newHTableDescriptor(TableName.valueOf(tableName));
    tableDescriptor.addFamily(newHColumnDescriptor("column1"));
    tableDescriptor.addFamily(newHColumnDescriptor("column2"));
    tableDescriptor.addFamily(newHColumnDescriptor("column3"));
    hBaseAdmin.createTable(tableDescriptor);

    hBaseAdmin.close();
    }catch(MasterNotRunningExceptione){
    e.printStackTrace();
    }catch(ZooKeeperConnectionExceptione){
    e.printStackTrace();
    }catch(IOExceptione){
    e.printStackTrace();
    }
    System.out.println("endcreatetable......");
    }

    /**
    *插入數據
    *@paramtableName
    *@throwsIOException
    */
    publicstaticvoidinsertData(StringtableName)throwsIOException{
    System.out.println("startinsertdata......");
    Connectionconnection=ConnectionFactory.createConnection(configuration);
    Tabletable=connection.getTable(TableName.valueOf(tableName));
    Putput=newPut("112233bbbcccc".getBytes());//一個PUT代表一行數據,再NEW一個PUT表示第二行數據,每行一個唯一的ROWKEY,此處rowkey為put構造方法中傳入的值
    put.add("column1".getBytes(),null,"aaa".getBytes());//本行數據的第一列
    put.add("column2".getBytes(),null,"bbb".getBytes());//本行數據的第三列
    put.add("column3".getBytes(),null,"ccc".getBytes());//本行數據的第三列
    try{
    table.put(put);
    }catch(IOExceptione){
    e.printStackTrace();
    }
    System.out.println("endinsertdata......");
    }

    /**
    *刪除一張表
    *@paramtableName
    */
    publicstaticvoiddropTable(StringtableName){
    try{
    HBaseAdminadmin=newHBaseAdmin(configuration);
    admin.disableTable(tableName);
    admin.deleteTable(tableName);
    }catch(MasterNotRunningExceptione){
    e.printStackTrace();
    }catch(ZooKeeperConnectionExceptione){
    e.printStackTrace();
    }catch(IOExceptione){
    e.printStackTrace();
    }

    }
    /**
    *根據rowkey刪除一條記錄
    *@paramtablename
    *@paramrowkey
    */
    publicstaticvoiddeleteRow(Stringtablename,Stringrowkey){
    try{
    HTabletable=newHTable(configuration,tablename);
    Listlist=newArrayList();
    Deleted1=newDelete(rowkey.getBytes());
    list.add(d1);

    table.delete(list);
    System.out.println("刪除行成功!");

    }catch(IOExceptione){
    e.printStackTrace();
    }


    }

    /**
    *組合條件刪除
    *@paramtablename
    *@paramrowkey
    */
    (Stringtablename,Stringrowkey){
    //目前還沒有發現有效的API能夠實現根據非rowkey的條件刪除這個功能能,還有清空表全部數據的API操作

    }


    /**
    *查詢所有數據
    *@paramtableName
    *@throwsIOException
    */
    publicstaticvoidQueryAll(StringtableName)throwsIOException{
    Connectionconnection=ConnectionFactory.createConnection(configuration);
    Tabletable=connection.getTable(TableName.valueOf(tableName));
    try{
    ResultScannerrs=table.getScanner(newScan());
    for(Resultr:rs){
    System.out.println("獲得到rowkey:"+newString(r.getRow()));
    for(KeyValuekeyValue:r.raw()){
    System.out.println("列:"+newString(keyValue.getFamily())
    +"====值:"+newString(keyValue.getValue()));
    }
    }
    }catch(IOExceptione){
    e.printStackTrace();
    }
    }

    /**
    *單條件查詢,根據rowkey查詢唯一一條記錄
    *@paramtableName
    */
    (StringtableName){

    HTablePoolpool=newHTablePool(configuration,1000);
    HTabletable=(HTable)pool.getTable(tableName);
    try{
    Getscan=newGet("abcdef".getBytes());//根據rowkey查詢
    Resultr=table.get(scan);
    System.out.println("獲得到rowkey:"+newString(r.getRow()));
    for(KeyValuekeyValue:r.raw()){
    System.out.println("列:"+newString(keyValue.getFamily())
    +"====值:"+newString(keyValue.getValue()));
    }
    }catch(IOExceptione){
    e.printStackTrace();
    }
    }

    /**
    *單條件按查詢,查詢多條記錄
    *@paramtableName
    */
    (StringtableName){

    try{
    HTablePoolpool=newHTablePool(configuration,1000);
    HTabletable=(HTable)pool.getTable(tableName);
    Filterfilter=newSingleColumnValueFilter(Bytes
    .toBytes("column1"),null,CompareOp.EQUAL,Bytes
    .toBytes("aaa"));//當列column1的值為aaa時進行查詢
    Scans=newScan();
    s.setFilter(filter);
    ResultScannerrs=table.getScanner(s);
    for(Resultr:rs){
    System.out.println("獲得到rowkey:"+newString(r.getRow()));
    for(KeyValuekeyValue:r.raw()){
    System.out.println("列:"+newString(keyValue.getFamily())
    +"====值:"+newString(keyValue.getValue()));
    }
    }
    }catch(Exceptione){
    e.printStackTrace();
    }

    }

    /**
    *組合條件查詢
    *@paramtableName
    */
    (StringtableName){

    try{
    HTablePoolpool=newHTablePool(configuration,1000);
    HTabletable=(HTable)pool.getTable(tableName);

    List<Filter>filters=newArrayList<Filter>();

    Filterfilter1=newSingleColumnValueFilter(Bytes
    .toBytes("column1"),null,CompareOp.EQUAL,Bytes
    .toBytes("aaa"));
    filters.add(filter1);

    Filterfilter2=newSingleColumnValueFilter(Bytes
    .toBytes("column2"),null,CompareOp.EQUAL,Bytes
    .toBytes("bbb"));
    filters.add(filter2);

    Filterfilter3=newSingleColumnValueFilter(Bytes
    .toBytes("column3"),null,CompareOp.EQUAL,Bytes
    .toBytes("ccc"));
    filters.add(filter3);

    FilterListfilterList1=newFilterList(filters);

    Scanscan=newScan();
    scan.setFilter(filterList1);
    ResultScannerrs=table.getScanner(scan);
    for(Resultr:rs){
    System.out.println("獲得到rowkey:"+newString(r.getRow()));
    for(KeyValuekeyValue:r.raw()){
    System.out.println("列:"+newString(keyValue.getFamily())
    +"====值:"+newString(keyValue.getValue()));
    }
    }
    rs.close();

    }catch(Exceptione){
    e.printStackTrace();
    }

    }

    }
熱點內容
安卓怎麼刪除信任憑證 發布:2025-01-16 12:22:06 瀏覽:335
代理編譯 發布:2025-01-16 12:07:59 瀏覽:793
伺服器為什麼老是無響應 發布:2025-01-16 12:07:59 瀏覽:891
安卓怎麼傳軟體到蘋果 發布:2025-01-16 12:01:28 瀏覽:952
pythonforzip 發布:2025-01-16 11:59:46 瀏覽:909
磁感密碼鎖有多少鑰匙 發布:2025-01-16 11:41:12 瀏覽:117
酷睿電腦配置怎麼查看 發布:2025-01-16 11:27:26 瀏覽:563
怎麼看安卓手機應用程序 發布:2025-01-16 11:19:36 瀏覽:109
ftp密碼為空怎麼處理 發布:2025-01-16 11:19:34 瀏覽:803
mc外國伺服器地址名稱 發布:2025-01-16 11:09:45 瀏覽:18