zyj3955

实验要求:

 

 

 

根据上面给出的学生表Student的信息,执行如下操作:

  • 用Hbase Shell命令创建学生表Student;
  create \'student\',\'name\', \'score\'
  put \'student\',\'01\',\'name:name\',\'zhangsan\'
  put \'student\',\'01\',\'score:English\',\'69\'
  put \'student\',\'01\',\'score:Math\',\'86\'
  put \'student\',\'01\',\'score:Computer,\'77\'
  put \'student\',\'02\',\'name:name\',\'lisi\'
  put \'student\',\'02\',\'score:English\',\'55\'
  put \'student\',\'02\',\'score:Math\',\'100\'
  put \'student\',\'02\',\'score:Computer\',\'88\'

  • 用scan命令浏览Student表的相关信息; 
scan \'student\'

 

 

 

  •  查询zhangsan的Computer成绩;\
get \'student\',\'01\',\'score:Computer\'

 

 

 

  •  修改lisi的Math成绩,改为95;
put \'student\' ,\'02\',\'score:Math\',\'95\'

 

 

 

核心代码:

//5.插入数据
public static void putData(String tableName, String rowKey,
                              String columnFamily, String
                                      column, String value) throws IOException{
    //获取表对象
    Table table=connection.getTable(TableName.valueOf(tableName));
    //创建put对象
    Put put=new Put(Bytes.toBytes(rowKey));
    //给put对象赋值
    put.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));
    put.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));
    put.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));
    put.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));
    //添加数据
    table.put(put);
    //关闭连接
    table.close();
}

public static void main(String[] args) throws IOException {
           //5.插入数据
        putData("student","03","name","name","scofield");
        putData("student","03","score","English","45");
        putData("student","03","score","Math","89");
        putData("student","03","score","Computer","100");
                //关闭资源
          close();
    }
}

 

 

  •  获取scofield的English成绩信息。
public static void getData(String tableName,String rowKey,String columnFamily,String column) throws IOException{
    //获取对象
    Table table=connection.getTable(TableName.valueOf(tableName));
    //创建GET对象
    Get get=new Get(Bytes.toBytes(rowKey));
        //指定获取的列族
        get.addFamily(Bytes.toBytes(columnFamily));
        //指定列族和列
        get.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column));
    //获取数据
    Result result=table.get(get);
    //解析result
    for (Cell cell : result.rawCells()) {
        //打印数据
        System.out.println("columnFamily:"+Bytes.toString(CellUtil.cloneFamily(cell))+
                ",column:"+Bytes.toString(CellUtil.cloneQualifier(cell))+
                ",value:"+Bytes.toString(CellUtil.cloneValue(cell)));
    }
    //关闭表连接
    table.close();
}
public static void main(String[] args) throws IOException {
        //获取数据
            //获取单行数据
            getData("student","03","score","English");
        //关闭资源
          close();
    }
}

 

分类:

技术点:

相关文章: