基于springboot集成hbase過程解析
這篇文章主要介紹了基于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());
  }
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
欄 目:Java
下一篇:Java如何獲取數(shù)組和字符串的長度(length還是length())
本文地址:http://www.jygsgssxh.com/a1/Java/8824.html
您可能感興趣的文章
- 01-10Springboot中@Value的使用詳解
 - 01-10JavaWeb實現(xiàn)郵件發(fā)送功能
 - 01-10java基于poi導出excel透視表代碼實例
 - 01-10基于Java驗證jwt token代碼實例
 - 01-10springboot實現(xiàn)文件上傳步驟解析
 - 01-10springboot jta atomikos實現(xiàn)分布式事物管理
 - 01-10SpringBoot使用RabbitMQ延時隊列(小白必備)
 - 01-10如何基于SpringBoot部署外部Tomcat過程解析
 - 01-10springboot集成fastDfs過程代碼實例
 - 01-10SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過程詳解
 


閱讀排行
本欄相關(guān)
- 01-10Java實現(xiàn)動態(tài)模擬時鐘
 - 01-10Springboot中@Value的使用詳解
 - 01-10JavaWeb實現(xiàn)郵件發(fā)送功能
 - 01-10利用Java實現(xiàn)復制Excel工作表功能
 - 01-10Java實現(xiàn)動態(tài)數(shù)字時鐘
 - 01-10java基于poi導出excel透視表代碼實例
 - 01-10java實現(xiàn)液晶數(shù)字字體顯示當前時間
 - 01-10基于Java驗證jwt token代碼實例
 - 01-10Java動態(tài)顯示當前日期和時間
 - 01-10淺談Java中真的只有值傳遞么
 
隨機閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
 - 01-10delphi制作wav文件的方法
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 - 04-02jquery與jsp,用jquery
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-11ajax實現(xiàn)頁面的局部加載
 - 01-10C#中split用法實例總結(jié)
 - 01-10SublimeText編譯C開發(fā)環(huán)境設置
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 08-05織夢dedecms什么時候用欄目交叉功能?
 


