(1)时间戳到时间的转换.单一的时间戳无法给出直观的解释。
public String GetTimeByStamp(String timestamp)
{
long datatime= Long.parseLong(timestamp);
Date date=new Date(datatime);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
String timeresult=format.format(date);
System.out.println("Time : "+timeresult);
return timeresult;
}
(2)时间到时间戳的转换。注意时间是字符串格式。字符串与时间的相互转换,此不赘述。
public String GetStampByTime(String time)
{
String Stamp="";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try
{
date=sdf.parse(time);
Stamp=date.getTime()+"000";
System.out.println(Stamp);
}catch(Exception e){e.printStackTrace();}
return Stamp;
}
package com.hbase;
import java.io.IOException;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
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.HTableInterface;
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.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;
import org.apache.hadoop.hbase.util.Writables;
import org.apache.zookeeper.KeeperException;
@SuppressWarnings("deprecation")
public class HBaseAPI {
static HBaseConfiguration cfg = null;
static {
Configuration HBASE_CONFIG = new Configuration();
HBASE_CONFIG.set("hbase.zookeeper.quorum", "feige");
HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "2222");
cfg = new HBaseConfiguration(HBASE_CONFIG);
}
//static HTablePool pool = new HTablePool(cfg, 1000);
/**
* 创建表
* @param tableName
*/
public static void createTable(String tableName,String[]families) {
System.out.println("start create table ......");
try {
HBaseAdmin hBaseAdmin = new HBaseAdmin(cfg);
if (hBaseAdmin.tableExists(tableName)) {// 如果存在要创建的表,那么先删除,再创建
hBaseAdmin.disableTable(tableName);
hBaseAdmin.deleteTable(tableName);
System.out.println(tableName + " is exist,detele....");
}
HTableDescriptor tableDescriptor = new HTableDescriptor(tableName);
for(int i=0;i<families.length;i++){
tableDescriptor.addFamily(new HColumnDescriptor(families[i]));
}
//tableDescriptor.addFamily(new HColumnDescriptor("column1"));
//tableDescriptor.addFamily(new HColumnDescriptor("column2"));
//tableDescriptor.addFamily(new HColumnDescriptor("column3"));
hBaseAdmin.createTable(tableDescriptor);
} catch (MasterNotRunningException e) {
e.printStackTrace();
} catch (ZooKeeperConnectionException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("end create table ......");
}
/**
* 插入数据
* @param tableName
*/
public static void insertData(String tableName,String rowKey,String family,String[]qualifiers,String[] values) {
System.out.println("start insert data ......");
HTablePool pool = new HTablePool(cfg, 100);
HTable table = (HTable) pool.getTable(tableName);
Put put = new Put(rowKey.getBytes());
for(int i=0;i<qualifiers.length;i++){
put.add(family.getBytes(), qualifiers[i].getBytes(), values[i].getBytes());
}
try {
table.put(put);
table.close();
}catch (IOException e) {
e.printStackTrace();
}finally {
if(table != null) {
pool.putTable((HTableInterface)table);
}
}
System.out.println("end insert data ......");
}
/**
* 删除一张表
* @param tableName
*/
public static void dropTable(String tableName) {
try {
HBaseAdmin admin = new HBaseAdmin(cfg);
admin.disableTable(tableName);
admin.deleteTable(tableName);
} catch (MasterNotRunningException e) {
e.printStackTrace();
} catch (ZooKeeperConnectionException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 查询所有数据
* @param tableName
*/
public static void QueryAll(String tableName) {
HTablePool pool = new HTablePool(cfg, 100);
HTable table = (HTable) pool.getTable(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("family:" + new String(keyValue.getFamily())
+";Qualifier:"+new String(keyValue.getQualifier())
+ ";Value:" + new String(keyValue.getValue()));
}
}
rs.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(table != null) {
pool.putTable((HTableInterface)table);
}
}
}
/**
* 单条件查询,根据rowkey查询唯一一条记录
* @param tableName
*/
public static void QueryByRowKey(String tableName,String rowKey) {
HTablePool pool = new HTablePool(cfg, 1000);
HTable table = (HTable) pool.getTable(tableName);
try {
Get scan = new Get(rowKey.getBytes());// 根据rowkey查询
Result r = table.get(scan);
System.out.println("rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("Family:" + new String(keyValue.getFamily())
+";Qualifier:" + new String(keyValue.getQualifier())
+ ";Vaule:" + new String(keyValue.getValue()));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 单条件按查询,查询多条记录
* @param tableName
*/
public static void QueryByFilter(String tableName,String family,String qualifier,String value) {
try {
HTablePool pool = new HTablePool(cfg, 1000);
HTable table = (HTable) pool.getTable(tableName);
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes(family),
Bytes.toBytes(qualifier),
CompareOp.EQUAL,Bytes.toBytes(value));
filter.setFilterIfMissing(true);
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("Family:" + new String(keyValue.getFamily())
+";Qualifier:" + new String(keyValue.getQualifier())
+ ";Vaule:" + new String(keyValue.getValue()));
}
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 组合条件查询
* @param tableName
*/
public static void QueryByMultiFilter(String tableName,String[] families,String[] qualifiers,String[] values) {
try {
HTablePool pool = new HTablePool(cfg, 100);
HTable table = (HTable) pool.getTable(tableName);
List<Filter> filters = new ArrayList<Filter>();
for(int index=0;index<families.length;index++){
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes(families[index]),
Bytes.toBytes(qualifiers[index]),
CompareOp.EQUAL,Bytes.toBytes(values[index]));
filters.add(filter);
}
FilterList filterList = new FilterList(filters);
Scan scan = new Scan();
scan.setFilter(filterList);
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("Family:" + new String(keyValue.getFamily())
+";Qualifier:" + new String(keyValue.getQualifier())
+ ";Vaule:" + new String(keyValue.getValue()));
}
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
参考
http://blog.csdn.net/feixiangcq/article/details/5495027
http://javacrazyer.iteye.com/blog/1186881