disconf-基于xml分布式配置管理hbase

前端之家收集整理的这篇文章主要介绍了disconf-基于xml分布式配置管理hbase前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本文介绍如何使用disconf管理hbase的配置
新建hbase.properties,内容为:
  1. # hbase config
    hbase.quorum=ip
    hdfs.namenode.host=ip
    hdfs.namenode.port=8020
    hbase.contrast.trans.table=contrast_trans
新建hbase.xml,内容为:
  1. <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c"
    xmlns:hdp="http://www.springframework.org/schema/hadoop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/hadoop
    http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">


    <hdp:configuration id="hadoopConfiguration">
    fs.default.name=hdfs://${hdfs.namenode.host}:${hdfs.namenode.port}
    </hdp:configuration>

    <hdp:hbase-configuration id="hbaseConfiguration" stop-proxy="false" delete-connection="false">
    hbase.zookeeper.quorum=${hbase.quorum}
    </hdp:hbase-configuration>

    <bean id="hbaseTemplate" class="org.springframework.data.hadoop.hbase.HbaseTemplate"
    p:configuration-ref="hbaseConfiguration" p:autoFlush="true" />
    </beans>
主要使用的是spring data hbase,注入hbaseTemplate就可以使用hbase的api

我们公司的业务中有个需求,hbase新导入数据一般重新放在一个表中,所以在查询的时候需要用接口去主动改变表名,利用disconf我们就不需要了,我们在配置文件中有一个配置hbase.contrast.trans.table,我们可以用DisconfFileItem来管理一个变量,如下:
  1. @Service
    @DisconfFile(filename = "hbase.properties")
    public class HbaseService {

    @Autowired
    private HbaseTemplate hbaseTemplate;

    private String ctTable;

    public ContrastTrans find() {
    return this.hbaseTemplate.get(this.ctTable,"13_1449289660000_34353c8f-5149-4140-9b13-673588978024",GlobalConstant.COLUMN_FAMILY,new ContrastTransRowMapper());
    }

    @DisconfFileItem(name = "hbase.contrast.trans.table",associateField = "ctTable")
    public String getCtTable() {
    return ctTable;
    }

    public void setCtTable(String ctTable) {
    this.ctTable = ctTable;
    }
    }
这样的话在disconf-web中配置好了就能立即生效改变ctTable的值,可以实现切表。

参考: https://github.com/knightliao/disconf/wiki

猜你在找的XML相关文章