• springboot集成hbase


    springboot-habse:

    https://github.com/spring-projects/spring-hadoop-samples/tree/master/hbase

    依赖:

     <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-hadoop-hbase</artifactId>
                <version>2.5.0.RELEASE</version>
            </dependency>
     
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-client</artifactId>
                <version>1.1.2</version>
            </dependency>
     
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-hadoop</artifactId>
                <version>2.5.0.RELEASE</version>
            </dependency>

    增加配置

    官方提供的方式是通过xml方式,简单改写后如下:

    @Configuration
    public class HBaseConfiguration {
     
        @Value("${hbase.zookeeper.quorum}")
        private String zookeeperQuorum;
     
        @Value("${hbase.zookeeper.property.clientPort}")
        private String clientPort;
     
        @Value("${zookeeper.znode.parent}")
        private String znodeParent;
     
        @Bean
        public HbaseTemplate hbaseTemplate() {
            org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
            conf.set("hbase.zookeeper.quorum", zookeeperQuorum);
            conf.set("hbase.zookeeper.property.clientPort", clientPort);
            conf.set("zookeeper.znode.parent", znodeParent);
            return new HbaseTemplate(conf);
        }
    }

    application.yml:

    hbase:
      zookeeper:
        quorum: hadoop001,hadoop002,hadoop003
        property:
          clientPort: 2181
     
    zookeeper:
      znode:
        parent: /hbase
    HbaseTemplate test :
    @Service
    @Slf4j
    public class HBaseService {
     
     
        @Autowired
        private HbaseTemplate hbaseTemplate;
     
     
        public List<Result> getRowKeyAndColumn(String tableName, String startRowkey, String stopRowkey, String column, String qualifier) {
            FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
            if (StringUtils.isNotBlank(column)) {
                log.debug("{}", column);
                filterList.addFilter(new FamilyFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes(column))));
            }
            if (StringUtils.isNotBlank(qualifier)) {
                log.debug("{}", qualifier);
                filterList.addFilter(new QualifierFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes(qualifier))));
            }
            Scan scan = new Scan();
            if (filterList.getFilters().size() > 0) {
                scan.setFilter(filterList);
            }
            scan.setStartRow(Bytes.toBytes(startRowkey));
            scan.setStopRow(Bytes.toBytes(stopRowkey));
     
            return hbaseTemplate.find(tableName, scan, (rowMapper, rowNum) -> rowMapper);
        }
     
        public List<Result> getListRowkeyData(String tableName, List<String> rowKeys, String familyColumn, String column) {
            return rowKeys.stream().map(rk -> {
                if (StringUtils.isNotBlank(familyColumn)) {
                    if (StringUtils.isNotBlank(column)) {
                        return hbaseTemplate.get(tableName, rk, familyColumn, column, (rowMapper, rowNum) -> rowMapper);
                    } else {
                        return hbaseTemplate.get(tableName, rk, familyColumn, (rowMapper, rowNum) -> rowMapper);
                    }
                }
                return hbaseTemplate.get(tableName, rk, (rowMapper, rowNum) -> rowMapper);
            }).collect(Collectors.toList());
        }
    }
  • 相关阅读:
    【Java多线程 32】
    python中用input输入时可以回车换行(转帖)
    Python中自定义的实例通过网络进行传送
    《Python网络编程基础》第二章 读书笔记。
    redis操作记录!!!
    流畅的python,Fluent Python 第十五章笔记
    Python并行编程 中文版<中文笔记> 电子版[抄书笔记,仅供自己参考]待更新
    C Primer Plu学习笔记【5-6章节】
    curl使用指南(转帖)
    Python asyncio 异步编程参考资料(全部为url地址)
  • 原文地址:https://www.cnblogs.com/lshan/p/12096832.html
Copyright © 2020-2023  润新知