目录
一:创建连接
三:创建表
四:删除表
五:成批插入数据
六:查看数据
1:scan
2:一个cell一个cell读取
七:注意
一:创建连接
public class API1 { public static void main(String[] args) throws IOException { //创建一个配置 Configuration conf = HbaseConfiguration.create(); //配置zk地址,通过zk找到hbase(根据自己的配置进行修改) conf.set("hbase.zookeeper.quorum", "master:2181,node1:2181,node2:2181"); //创建连接 Connection connection = ConnectionFactory.createConnection(conf); //创建表 Admin admin = connection.getAdmin(); //list *** 作 TableName[] tableNames = admin.listTableNames(); for (TableName tableName : tableNames) { System.out.println(tableName); } //put Table testapi = connection.getTable(TableName.valueOf("testapi")); //给rk Put put = new Put("0001".getBytes()); //插入一个cell Put put1 = put.addColumn("cf1".getBytes(), "name".getBytes(), "张三".getBytes()); Put put2 = put.addColumn("cf1".getBytes(), "age".getBytes(), "22".getBytes()); Put put3 = put.addColumn("cf1".getBytes(), "sex".getBytes(), "男".getBytes()); testapi.put(put); //get admin.close(); connection.close(); } }二:插入一条数据和获取一条数据
//获取表 Table testapi = connection.getTable(TableName.valueOf("testapi")); //给rk Put put = new Put("0001".getBytes()); //插入一个cell Put put1 = put.addColumn("cf1".getBytes(), "name".getBytes(), "lisi".getBytes()); Put put2 = put.addColumn("cf1".getBytes(), "age".getBytes(), "21".getBytes()); Put put3 = put.addColumn("cf1".getBytes(), "sex".getBytes(), "man".getBytes()); testapi.put(put);
//获得表 Table testapi = connection.getTable(TableName.valueOf("testapi")); //获取那一条数据 Get get = new Get("0001".getBytes()); Result result = testapi.get(get); //获取cell byte[] row = result.getRow(); System.out.println(row); System.out.println(Bytes.toString(row)); byte[] value = result.getValue("cf1".getBytes(), "name".getBytes()); System.out.println(value); System.out.println(Bytes.toString(value));三:创建表
admin = connection.getAdmin(); // 获得表结构 HTableDescriptor student = new HTableDescriptor(TableName.valueOf("student")); //创建列簇 HColumnDescriptor info = new HColumnDescriptor("info"); //将列簇加入表 student.addFamily(info); //创建表 admin.createTable(student);四:删除表
admin = connection.getAdmin(); TableName test = TableName.valueOf("test"); if(admin.tableExists(test)){//判断一下表是否存在,存在就先disablle一下然后删除 admin.disableTable(test); admin.deleteTable(test); }五:成批插入数据
//读取学生信息写入hbase (当前模块下学生数据) ArrayList六:查看数据 1:scanstrings = new ArrayList (); int b=10; TableName student = TableName.valueOf("stu_split"); Table table = connection.getTable(student); BufferedReader br = new BufferedReader(new FileReader("data/students.txt")); String line=null; while((line=br.readLine())!=null){ String[] split = line.split(","); String id=split[0]; String name=split[1]; String age=split[2]; String gender=split[3]; String clazz=split[4]; Put put = new Put(id.getBytes()); byte[] info = "info".getBytes(); put.addColumn(info,"name".getBytes(),name.getBytes()); put.addColumn(info,"age".getBytes(),age.getBytes()); put.addColumn(info,"gender".getBytes(),gender.getBytes()) ; put.addColumn(info,"clazz".getBytes(),clazz.getBytes()); //一次写入10条 strings.add(put); if(strings.size()==b){ table.put(strings); strings.clear(); } } //判断是否写完把剩下的写入 if(!strings.isEmpty()){ table.put(strings); }
Table student = connection.getTable(TableName.valueOf("student")); Scan scan = new Scan(); Scan scan1 = scan.withStartRow("1500100100".getBytes()); // Scan scan2 = scan.withStopRow("1500100110".getBytes()); ResultScanner scanner = student.getScanner(scan); for (Result result : scanner) { String id = Bytes.toString(result.getRow()); String name = Bytes.toString(result.getValue("info".getBytes(), "name".getBytes())); String age = Bytes.toString(result.getValue("info".getBytes(), "age".getBytes())); String gender = Bytes.toString(result.getValue("info".getBytes(), "gender".getBytes())); String clazz = Bytes.toString(result.getValue("info".getBytes(), "clazz".getBytes())); System.out.println(id+" "+name+" "+age+" "+" "+gender+" "+clazz); }2:一个cell一个cell读取
Table student = connection.getTable(TableName.valueOf("student")); Scan scan = new Scan(); // Scan scan1 = scan.withStartRow("1500100100".getBytes()); scan.setLimit(10); // Scan scan2 = scan.withStopRow("1500100110".getBytes()); ResultScanner scanner = student.getScanner(scan); for (Result result : scanner) { String s1 = Bytes.toString(result.getRow()); System.out.print(s1+" "); List七:注意cells = result.listCells(); for (Cell cell : cells) { String s = Bytes.toString(CellUtil.clonevalue(cell)); System.out.print(s+" "); } System.out.println(); } |
后面对Hbase的 *** 作都是基于前面连接的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)