您的位置:首页 > 其它

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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: