/**Name : KcnaufHadoopManagement
*Author : Zhang Bing
*Created : 2013-7-31
*Function : delete of hbase
*Partener : Zhang Wenbo
*/
package com.exercise.hbase.command;
import java.io.IOException;
import java.util.LinkedList;
import java.util.NavigableMap;
import java.util.Set;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
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.filter.PrefixFilter;
public class HBaseDelete {
private final static String deviceSet = "DC-001,DC-002,DC-003";
private String tablename;
public String getTablename() {
return tablename;
}
public void setTablename(String tablename) {
this.tablename = tablename;
}
public HBaseDelete(String tablename) {
super();
this.tablename = tablename;
}
/**
*This method will delete delete by rowkey
* @param rowkey
* @return
*/
public int deleteDataByRowkey(String rowkey) {
Configuration config = HBaseConfiguration.create();
try {
config.set("hbase.zookeeper.quorum", deviceSet);
HTable table = new HTable(config, tablename);
Delete del = new Delete(rowkey.getBytes());
table.delete(del);
return 1;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
/**
* This method will delete all data by rowkeyProfix
* @param rowkeyProfix
* @return
*/
public int deleteDataByRowkeyProfix(String rowkeyProfix) {
Configuration config = HBaseConfiguration.create();
try {
config.set("hbase.zookeeper.quorum", deviceSet);
HTable table = new HTable(config, tablename);
Delete delete;
Scan scan = new Scan();
scan.setFilter(new PrefixFilter(rowkeyProfix.getBytes()));
ResultScanner rs = table.getScanner(scan);
for (Result r : rs) {
KeyValue[] kv = r.raw();
for (int i = 0; i < kv.length; i++) {
delete = new Delete(kv[i].getRow());
table.delete(delete);
}
}
return 1;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
/**
* This method will delete ALL versions(different rows) specified by the
* column provided. Added 2013-07-11 By Zhang Wenbo Update 2013-07-18 By
* Zhang Wenbo , Add HTable.delete action.
**/
public int deleteColumns(String family, String qualify) {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", deviceSet);
HTable htable = null;
try {
htable = new HTable(config, tablename);
ResultScanner rsScanner = htable.getScanner(family.getBytes(),
qualify.getBytes());
LinkedList<Delete> deleteList = new LinkedList<Delete>();
Delete delHandle = null;
for (Result rst = rsScanner.next(); rst != null; rst = rsScanner
.next()) {
delHandle = new Delete(rst.getRow());
delHandle.deleteColumns(family.getBytes(), qualify.getBytes());
deleteList.add(delHandle);
}
htable.delete(deleteList);
return 1;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != htable) {
try {
htable.close();
} catch (IOException e) {
}
}
}
return -1;
}// deleteByColumnFamily END.
/**
* This method will delete ALL versions specified by the timestamp provided.
* Added 2013-07-12 By Zhang Wenbo Alter 2013-7-13 By Zhang Bing Update
* 2013-07-18 By Zhang Wenbo, add HTable.delete action.
**/
public int deleteByTimestamp(long timestamp) {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", deviceSet);
HTable htable = null;
try {
htable = new HTable(config, tablename);
ResultScanner rsScanner = htable.getScanner(new Scan()
.setTimeStamp(timestamp));
LinkedList<Delete> deleteList = new LinkedList<Delete>();
Delete delHandle = null;
for (Result rst = rsScanner.next(); rst != null; rst = rsScanner
.next()) {
NavigableMap<byte[], NavigableMap<byte[], byte[]>> map = rst
.getNoVersionMap();
Set<byte[]> familySet = map.keySet();
for (byte[] fmily : familySet) {
Set<byte[]> qualifySet = map.get(fmily).keySet();
for (byte[] qlify : qualifySet) {
delHandle = new Delete(rst.getRow());
delHandle.deleteColumn(fmily, qlify, timestamp);
deleteList.add(delHandle);
}
}
}
htable.delete(deleteList);
return 1;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != htable) {
try {
htable.close();
} catch (IOException e) {
}
}
}
return -1;
}
}
java 建/删表 hbase
最新推荐文章于 2022-12-14 16:12:22 发布