hbase Phoenix整合mybatis DruidDataSource

hbase | 2019-09-13 10:02:39

hbase Phoenix整合到mybatis DruidDataSource很简单,和整合mysql的方式一样,因为都是jdbc的方式。

原本在我的代码中是有mysql的数据库连接池的,我是使用扫描不同包来实现多数据源的。


<!-- hbase datasource -->
<bean id="hbaseDataSource"
  class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
  destroy-method="close">
<property name="driverClassName" value="org.apache.phoenix.jdbc.PhoenixDriver" />
<property name="url" value="master,slave1" />
<property name="username" value="root" />
<property name="password" value="123456" />
<property name="connectionProperties" value="phoenix.query.timeoutMs=1200000;hbase.rpc.timeout=1200000;hbase.client.scanner.timeout.period=1200000;" />
</bean>
<bean id="hbaseSqlSessionFactory"
  class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="hbaseDataSource" />
<property name="mapperLocations">
<list>
<value>classpath*:net/itxw/hbaseDao/mapper/*Mapper.xml
</value>
</list>
</property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="net.itxw.data.synchronize.hbaseDao" />
<property name="sqlSessionFactoryBeanName" value="hbaseSqlSessionFactory" />
</bean>


注:我要着重解释的是connectionProperties,是单独指定connection的属性,我这里指定的phoenix.query.timeoutMs=1200000;hbase.rpc.timeout=1200000;hbase.client.scanner.timeout.period=1200000;

是解决phoenix操作超时的问题,默认只有60秒,当然服务端也要相应配置。

登录后即可回复 登录 | 注册
    
关注编程学问公众号