栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据从入门到实战——HBase开发:表的扫描与扫描的缓存和批量处理

大数据从入门到实战——HBase开发:表的扫描与扫描的缓存和批量处理

Hbase开发:表的扫描与扫描的缓存和批量处理
  • 批量处理
  • 扫描表中所有的数据
  • 在扫描中使用缓存和批量参数

批量处理
package step1;

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

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HbaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.client.coprocessor.Batch;
import org.apache.hadoop.hbase.util.Bytes;

public class Task {

	public Object[] batchOp(String tablename) throws Exception {
	
	Configuration conf = HbaseConfiguration.create();
    Connection conn = ConnectionFactory.createConnection(conf);
    Table table = conn.getTable(TableName.valueOf(tablename));
    List rows = new ArrayList<>();
    //删除操作
    Delete delete = new Delete(Bytes.toBytes("row1"));
    Delete delete2 = new Delete(Bytes.toBytes("row2"));
    rows.add(delete);
    rows.add(delete2);
    //获取操作
    Get get = new Get(Bytes.toBytes("row3"));
    Get get2 = new Get(Bytes.toBytes("row10"));
    rows.add(get);
    rows.add(get2);
    //定义结果数组长度
    Object[] results = new Object[rows.size()];
    table.batch(rows, results);//这是一个同步的操作,批量操作的结果将会在操作之后放在results中
    //delete和put操作的结果为NONE 即没有结果
    return results;







		
		
	}
}

扫描表中所有的数据
package step2;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HbaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

public class Task {

	public void scanTable(String tablename) throws Exception {
	
	Configuration conf = HbaseConfiguration.create();
    Connection conn = ConnectionFactory.createConnection(conf);
    Table table = conn.getTable(TableName.valueOf(tablename));
    Scan scan = new Scan();
    ResultScanner scanner = table.getScanner(scan);
    for(Result result : scanner){
      for (Cell cell : result.listCells()) {
        System.out.println(new String(CellUtil.clonevalue(cell),"utf-8"));
      }
    } 






        
		
	}
}

在扫描中使用缓存和批量参数
package step3;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HbaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

public class Task {

	public void scanTable(String tablename) throws Exception {
	
	Configuration conf = HbaseConfiguration.create();
    Connection conn = ConnectionFactory.createConnection(conf);
    Table table = conn.getTable(TableName.valueOf(tablename));
    Scan scan = new Scan();
    scan.setCaching(200);
    scan.setStartRow(Bytes.toBytes("1"));//设置从row3开始扫描
    scan.setStopRow(Bytes.toBytes("row199"));
    ResultScanner scanner = table.getScanner(scan);
    for (Result result : scanner) {
      for(Cell cell :result.listCells()) {
        System.out.println(new String(CellUtil.clonevalue(cell),"utf-8"));
      }
    }

		
		
		
		
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433840.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号