HBase-1.0读写数据
2015-08-26 20:30
232 查看
1,Hbase Api读取数据
public class WordCount{
public static void main(String[] args) throws IOException
{
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.rootdir", "hdfs://localhost:9000/hbase");
Connection connect = ConnectionFactory.createConnection(conf);
Table table = connect.getTable(TableName.valueOf("test"));
List<String> rstlist = new ArrayList<String>();
Date time = new Date();
long t1=time.getTime();
Scan s = new Scan();
s.setFilter(new FirstKeyOnlyFilter());
ResultScanner scanner = table.getScanner(s);
for(Result r: scanner)
{
NavigableMap<byte[], NavigableMap<byte[], byte[]>> returnMap = r.getNoVersionMap();
NavigableMap<byte[], byte[]> te = returnMap.get((returnMap).firstKey());
System.out.println(new String(te.get(te.firstKey())));
}
time = new Date();
long t2=time.getTime();
System.out.print((t2-t1)+" ms");
for(int i =0;i<rstlist.size();i++)
{
System.out.print(rstlist.get(i));
}
System.out.print(rstlist.size());
}
2,使用分页过滤器进行过滤的式例代码:
Filter filter = new PageFilter(15);int totalRow = 0;
byte[] lastRow = null;
while(true){
Scan scan = new Scan();
scan.setFilter(filter);
if(lastRow (!=null){
byte[] startRow = Bytes.add(lastRow,POSTIFX);
System.out.println("start row:" + Bytes.toStringBinary(startRow));
scan.setStartRow(startRow);
}
ResultScanner scanner = table.getScanner(scan);
int localRows = 0;
Result result;
while((result = scanner.next())!=null){
System.out.println(localRows++ + ":" + result);
totalRows++;
localRows++:
lastRow = result.getRow();
}
scanner.close();
if(localRows ==0)
break;
}
System.out.println("total rows: "+totalRows);
3,Hbase作为输出源式例:
public class Main extends Configured implements Tool{static final Log log = LogFactory.getLog(Main.class);
@Override
public int run(String[] args) throws Exception{
if(args!=3){
Log.info("Usage: 3 paremeters needed!");
System.exit(1);
}
String input = args[0];
String table = args[1];
String columns = args[2];
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.master","");
conf.set(hbase.zookeeper.quorum",>>);
Job job = new Job(conf,"");
job.setJarByClass(Main.class);
job.setMapperClass(ExampleMapper.class);
job.setOutputFormatClass(TableOutputFormat.calss);
job.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE,table);
job.setOutputKeyClass(ImmutableBytesWritable.class);
job.setOutputValueClass(Writbale.class);
job.setNumbReduceTasks(0);
FileInputFormat.addInputPath(job,new Path(input));
return job.waitForCompletion(true) ? 0:1);
}
public static void main(String[] args)throws IOException{
Configuration conf = new Configuration();
String[] otherArgs = new GenericoptionParser(conf,args).getRemainingArgs();
in tres = 1;
try{
res = ToolRunner.run(conf,new Main(),otherArgs);
}
catch(Exception e){
e.printStackTrace();
}
System.exit(res);
}
}
public class ExampleMapper extends Mapper<LongWritable, Text, ImmutableBytesWritable,Writable>{
private byte[] family = null;
private byte[] qualifier = null;
private byte[] val = null;
private String rowkey = null;
private long ts =System.currentTimeMillis();
@Override
protected void map(LongWritb=able key, Text value,Context context)throws IOException, InterruptedException{
try{
String line = value.toString();
String[] arr = line.split("\t",-1);
if(arr.length ==2)
{
rowkey = arr[0];
String[] vales = arr[1].split("\t",-1);
if(vales.length == 4){
family = vales[0].getBytes();
qualifier = vales[1].getBytes();
val = vales[2].getBytes();
ts = Long.parseLong(vales[3]);
Put put = new Put(rowkey.getBytes(),ts);
put.add(family, qualifier,val);
context.write(new ImmutableBytesWritable(rowkey.getBytes()),put);
}
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
相关文章推荐
- 【JavaScript】正则表达式
- Dual-SIM Phone
- JDBC连接Oracle RAC
- HDOJ 1203 I NEED A OFFER!(01背包)
- MMU初始化
- HttpClient 4.3教程
- 利用Struts进行图片上传
- STL map和unordered_map的区别
- 黑马程序员——OC的Category和Protocol
- 动态规划之背包问题详解
- cocos2dx 玩转音乐播放
- Android-有序广播简单例子
- 【codevs天梯&青铜Bronze】解题报告
- java 字符串json
- 8.26学习总结
- 自定义ExpandableListView
- C语言实现ls命令
- 第K极值
- Android 扫描wifi局域网ip
- 计算子串在主串中的位置及其优化(KMP算法)