HbaseApi

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.;
import org.apache.hadoop.hbase.client.
;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class demo02 {

/**
 * 创建表
 * @throws Exception
 */
@Test
public void createTable() throws Exception{
    //获取配置
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01,node02,node03");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Admin admin = connection.getAdmin();
    //创建表描述器
    HTableDescriptor a = new HTableDescriptor(TableName.valueOf("b"));
    //添加组丶列
    a.addFamily(new HColumnDescriptor("f1"));
    a.addFamily(new HColumnDescriptor("f2"));
    //创建表
    boolean a1 = admin.tableExists(TableName.valueOf("b"));
    if (!a1){

        admin.createTable(a);
    }
    admin.close();
}


/**
 * 删除表
 */
@Test
public void dropTable() throws Exception{
    //获取配置信息
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01,node02,node03");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Admin admin = connection.getAdmin();
    //判断表是否存在,存在就删除
    boolean a = admin.tableExists(TableName.valueOf("a"));
    if (a){
        admin.disableTable(TableName.valueOf("a"));
        admin.deleteTable(TableName.valueOf("a"));
    }else {
        System.out.println("表不存在");
        return;
    }
    admin.close();
}


/**
 * 创建命名空间
 */
@Test
public void createNameSpace() throws Exception{
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01,node02,node03");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Admin admin = connection.getAdmin();
    NamespaceDescriptor build = NamespaceDescriptor.create("0418").build();
    try {
        admin.createNamespace(build);
    }catch (NamespaceExistException e){
        System.out.println("命名空间已经存在");
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    admin.close();
}


/**
 * 添加数据
 */

@Test
public void addDatas() throws Exception{
    //获取配置
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01,node02,node03");
    Connection connection = ConnectionFactory.createConnection(configuration);

    //获取表
    Table table = connection.getTable(TableName.valueOf("b"));
    //添加数据
    Put put = new Put("0001".getBytes());

// put.addColumn(“f1”.getBytes(),“1”.getBytes(),“lisi”.getBytes());
// put.addColumn(“f1”.getBytes(),“2”.getBytes(),“wangwu”.getBytes());
// put.addColumn(“f1”.getBytes(),“3”.getBytes(),“zhangsan”.getBytes());
// put.addColumn(“f1”.getBytes(),“4”.getBytes(),“zhaoliu”.getBytes());
// put.addColumn(“f2”.getBytes(),“5”.getBytes(),“1”.getBytes());
// put.addColumn(“f2”.getBytes(),“6”.getBytes(),“2”.getBytes());
// put.addColumn(“f2”.getBytes(),“7”.getBytes(),“3”.getBytes());

    put.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("zhqangsan"));
    put.addColumn("f1".getBytes(),"address".getBytes(),Bytes.toBytes("lisi"));
    put.addColumn("f1".getBytes(),"sex".getBytes(),Bytes.toBytes("wangwu"));
    put.addColumn("f1".getBytes(),"wdw".getBytes(),Bytes.toBytes("zhaoliu"));
    put.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));

    List<Put>list = new ArrayList<>();
    list.add(put);

    //添加
    table.put(list);
    //关闭资源
    table.close();
}

/**
 * 获取数据
 */

@Test
public void getData() throws IOException {
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01,node02,node03");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table a = connection.getTable(TableName.valueOf("b"));

    Get get = new Get("0001".getBytes());
    Result result = a.get(get);
    Cell[] cells = result.rawCells();
    for (Cell cell : cells) {

        System.out.println("111111     "+Bytes.toString(CellUtil.cloneFamily(cell)));
        System.out.println("222222     "+Bytes.toString(CellUtil.cloneQualifier(cell)));
        System.out.println("333333     "+Bytes.toString(CellUtil.cloneValue(cell)));
    }
    a.close();
}

}

过滤器

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.;
import org.apache.hadoop.hbase.filter.
;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.jupiter.api.Test;

import java.io.IOException;

public class demo01 {

/**
 * hbase行键过滤器RowFilter
 * 通过RowFilter过滤比rowKey  0003小的所有值出来
 */
@Test
public  void rowKeyFilter() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));

    Scan scan = new Scan();
    RowFilter rowFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("0003")));

    scan.setFilter(rowFilter);
    ResultScanner resultScanner = myuser.getScanner(scan);
    for (Result result : resultScanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));

        //指定列族以及列打印列当中的数据出来
        System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "id".getBytes())));
        System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "age".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes())));
    }
    myuser.close();

}



/**
 * hbase列族过滤器FamilyFilter
 * 查询比f2列族小的所有的列族内的数据
 */
@Test
public  void familyFilter() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    Scan scan = new Scan();
    FamilyFilter familyFilter = new FamilyFilter(CompareFilter.CompareOp.LESS, new SubstringComparator("f2"));
    scan.setFilter(familyFilter);
    ResultScanner resultScanner = myuser.getScanner(scan);
    for (Result result : resultScanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));
        //指定列族以及列打印列当中的数据出来
        System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "id".getBytes())));
        System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "age".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes())));
    }
    myuser.close();
}


/**
 * hbase列过滤器
 * 只查询name的值
 */
@Test
public  void qualifierFilter() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    Scan scan = new Scan();
    QualifierFilter qualifierFilter = new QualifierFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("id"));
    scan.setFilter(qualifierFilter);
    ResultScanner resultScanner = myuser.getScanner(scan);
    for (Result result : resultScanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));
        //指定列族以及列打印列当中的数据出来
           System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "id".getBytes())));

// System.out.println(Bytes.toString(result.getValue(“f1”.getBytes(), “name”.getBytes())));
}
myuser.close();
}

/**
 * hbase值过滤器
 * 查询包含8的列值
 */
@Test
public  void valueFilter() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    Scan scan = new Scan();
    ValueFilter valueFilter = new ValueFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("8"));

    scan.setFilter(valueFilter);
    ResultScanner resultScanner = myuser.getScanner(scan);
    for (Result result : resultScanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));
        //指定列族以及列打印列当中的数据出来
        //    System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "id".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f2".getBytes(), "phone".getBytes())));
    }
    myuser.close();
}


/**
 * 单列值过滤器,返回满足条件的整行数据
 */
@Test
public void singleColumnFilter() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    Scan scan = new Scan();
    SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("f1".getBytes(), "name".getBytes(), CompareFilter.CompareOp.EQUAL, "刘备".getBytes());
    scan.setFilter(singleColumnValueFilter);
    ResultScanner resultScanner = myuser.getScanner(scan);
    for (Result result : resultScanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));
        //指定列族以及列打印列当中的数据出来
        System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "id".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f2".getBytes(), "phone".getBytes())));
    }
    myuser.close();
}



/**
 * 行键前缀过滤器
 * 查询以00开头的所有前缀的rowkey
 */
@Test
public void preFilter() throws IOException {

    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    Scan scan = new Scan();
    PrefixFilter prefixFilter = new PrefixFilter("00".getBytes());
    scan.setFilter(prefixFilter);
    ResultScanner resultScanner = myuser.getScanner(scan);
    for (Result result : resultScanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));
        //指定列族以及列打印列当中的数据出来
        System.out.println(Bytes.toInt(result.getValue("f1".getBytes(), "id".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes())));
        System.out.println(Bytes.toString(result.getValue("f2".getBytes(), "phone".getBytes())));
    }
    myuser.close();

}

/**
 * 分页过滤器
 * 通过pageFilter实现分页过滤器
 * @throws IOException
 */

@Test
public void pageFilter2() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum", "node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    int pageNum = 3;
    int pageSize = 2;
    Scan scan = new Scan();
    if (pageNum == 1) {
        PageFilter filter = new PageFilter(pageSize);
        scan.setStartRow(Bytes.toBytes(""));
        scan.setFilter(filter);
        scan.setMaxResultSize(pageSize);
        ResultScanner scanner = myuser.getScanner(scan);
        for (Result result : scanner) {
            //获取rowkey
            System.out.println(Bytes.toString(result.getRow()));
            //指定列族以及列打印列当中的数据出来

// System.out.println(Bytes.toInt(result.getValue(“f1”.getBytes(), “id”.getBytes())));
System.out.println(Bytes.toString(result.getValue(“f1”.getBytes(), “name”.getBytes())));
//System.out.println(Bytes.toString(result.getValue(“f2”.getBytes(), “phone”.getBytes())));
}

    }else{
        String startRowKey ="";
        PageFilter filter = new PageFilter((pageNum - 1) * pageSize + 1  );
        scan.setStartRow(startRowKey.getBytes());
        scan.setMaxResultSize((pageNum - 1) * pageSize + 1);
        scan.setFilter(filter);
        ResultScanner scanner = myuser.getScanner(scan);
        for (Result result : scanner) {
            byte[] row = result.getRow();
            startRowKey =  new String(row);
        }
        Scan scan2 = new Scan();
        scan2.setStartRow(startRowKey.getBytes());
        scan2.setMaxResultSize(Long.valueOf(pageSize));
        PageFilter filter2 = new PageFilter(pageSize);
        scan2.setFilter(filter2);

        ResultScanner scanner1 = myuser.getScanner(scan2);
        for (Result result : scanner1) {
            byte[] row = result.getRow();
            System.out.println(new String(row));
        }
    }
    myuser.close();
}


/**
 * 多过滤器组合使用
 * 需求:使用SingleColumnValueFilter查询f1列族,name为刘备的数据,并且同时满足rowkey的前缀以00开头的数据(PrefixFilter)
 */
@Test
public void manyFilter() throws IOException {
    //获取连接
    Configuration configuration = HBaseConfiguration.create();
    configuration.set("hbase.zookeeper.quorum", "node01:2181,node02:2181,node03:2181");
    Connection connection = ConnectionFactory.createConnection(configuration);
    Table myuser = connection.getTable(TableName.valueOf("myuser"));
    Scan scan = new Scan();
    FilterList filterList = new FilterList();

    SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("f1".getBytes(), "name".getBytes(), CompareFilter.CompareOp.EQUAL, "刘备".getBytes());
    PrefixFilter prefixFilter = new PrefixFilter("00".getBytes());
    filterList.addFilter(singleColumnValueFilter);
    filterList.addFilter(prefixFilter);
    scan.setFilter(filterList);
    ResultScanner scanner = myuser.getScanner(scan);
    for (Result result : scanner) {
        //获取rowkey
        System.out.println(Bytes.toString(result.getRow()));
        //指定列族以及列打印列当中的数据出来

// System.out.println(Bytes.toInt(result.getValue(“f1”.getBytes(), “id”.getBytes())));
System.out.println(Bytes.toString(result.getValue(“f1”.getBytes(), “name”.getBytes())));
//System.out.println(Bytes.toString(result.getValue(“f2”.getBytes(), “phone”.getBytes())));
}
myuser.close();

}

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理、企业管理、简历管理、老师管理、简历投递管理、新闻资讯管理、新闻资讯收藏管理、新闻资讯留言管理、学生信息管理、宣传管理、学生管理、职位招聘管理、职位收藏管理、招聘咨询管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生就业服务平台管理系统可以提高大学生就业服务平台信息管理问题的解决效率,优化大学生就业服务平台信息处理流程,保证大学生就业服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理新闻信息,管理大学生就业服务平台信息,包括考试管理,培训管理,投递管理,薪资管理等,可以管理新闻信息。 考试管理界面,管理员在考试管理界面中可以对界面中显示,可以对考试信息的考试状态进行查看,可以添加新的考试信息等。投递管理界面,管理员在投递管理界面中查看投递种类信息,投递描述信息,新增投递信息等。新闻信息管理界面,管理员在新闻信息管理界面中新增新闻信息,可以删除新闻信息。新闻信息类型管理界面,管理员在新闻信息类型管理界面查看新闻信息的工作状态,可以对新闻信息的数据进行导出,可以添加新新闻信息的信息,可以编辑新闻信息信息,删除新闻信息信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值