@TestpublicvoidPut()throwsIOException{Table test_cre = conn.getTable(table);Put put =newPut("001".getBytes());
put.addColumn("cf1".getBytes(),"name".getBytes(),"zhangsan".getBytes());
test_cre.put(put);}
6、putall 读取students.txt 并将数据写入Hbase
@TestpublicvoidPutAll()throwsIOException{//创建表Admin admin = conn.getAdmin();TableName studentsT =TableName.valueOf("students");//判断表是否存在if(!admin.tableExists(studentsT)){//创建表结构HTableDescriptor students =newHTableDescriptor(studentsT);//创建一个列簇HColumnDescriptor info =newHColumnDescriptor("info");//添加列簇
students.addFamily(info);
admin.createTable(students);}//向表中添加数据Table stu = conn.getTable(studentsT);//读取一个文本文件BufferedReader br =newBufferedReader(newFileReader("D:\\bigdata\\ownbigdata\\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 sex = split[3];String clazz = split[4];Put put =newPut(id.getBytes());
put.addColumn("info".getBytes(),"name".getBytes(),name.getBytes());
put.addColumn("info".getBytes(),"age".getBytes(),age.getBytes());
put.addColumn("info".getBytes(),"sex".getBytes(),sex.getBytes());
put.addColumn("info".getBytes(),"clazz".getBytes(),clazz.getBytes());
stu.put(put);}}
6、获取数据
@TestpublicvoidGet()throwsIOException{Table test_cre = conn.getTable(this.table);Get get =newGet("001".getBytes());Result result = test_cre.get(get);byte[] value = result.getValue("cf1".getBytes(),"name".getBytes());System.out.println(Bytes.toString(value));}
7、查询数据
@TestpublicvoidScan()throwsIOException{Table stu = conn.getTable(TableName.valueOf("students"));Scan scan =newScan();// scan.setLimit(5);
scan.withStartRow("1500100010".getBytes());
scan.withStopRow("1500100020".getBytes());ResultScanner sc = stu.getScanner(scan);for(Result result : sc){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 sex =Bytes.toString(result.getValue("info".getBytes(),"sex".getBytes()));String clazz =Bytes.toString(result.getValue("info".getBytes(),"clazz".getBytes()));System.out.println(id +","+ name +","+ age +","+ sex +","+ clazz);}}
8、获取数据第二种方式
//适用于每条数据结构不唯一的情况下,直接遍历每条数据包含的所有的cell@TestpublicvoidscanWithUtil()throwsIOException{Table students = conn.getTable(TableName.valueOf("students"));Scan scan =newScan();// scan.setLimit(5);
scan.withStartRow("1500100010".getBytes());
scan.withStopRow("1500100020".getBytes());ResultScanner sc = students.getScanner(scan);for(Result result : sc){//通过获取的一条数据去获取每一列的单元格for(Cell cell : result.listCells()){String value =Bytes.toString(CellUtil.cloneValue(cell));//列名String qua =Bytes.toString(CellUtil.cloneQualifier(cell));//列簇名String cf =Bytes.toString(CellUtil.cloneFamily(cell));if("age".equals(qua)){if(Integer.parseInt(value)>=18){
value ="成年";}else{
value ="未成年";}}System.out.print(value+" ");}System.out.println();}}