HBase集成phoenix实现SQL操作

#安装HBase

下载phoenix

官网下载地址:http://phoenix.apache.org/download.html

hadoop-3.2.1 + hbase-2.2.4 + phoenix-5.1.2

  • 第一种

红框内为HBase对应版本
在这里插入图片描述

  • 第二种
    在这里插入图片描述

解压

tar -zxvf phoenix-hbase-2.2-5.1.2-bin.tar.gz

在这里插入图片描述
将phoenix-server-hbase-2.2-5.1.2.jar 复制到HBASE_HOME/lib目录下

cp PHOENIX_HOME/phoenix-server-hbase-2.2-5.1.2.jar HBASE_HOME/lib/phoenix-server-hbase-2.2-5.1.2.jar

配置

配置HBASE_HOME/conf/hbase-site.xml

如果需要运用到NameSpace(相当于DB中数据库概念)需要加入配置,不配置默认为default库

<property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
</property>

使用二级索引需要加上

<property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>

重启hbase

HBASE_HOME/bin/stop-hbase.sh
HBASE_HOME/bin/start-hbase.sh

phoenix

如果需要使用phoenix shell操作需要
将以下3个文件拷贝到 PHOENIX_HOME/bin目录下:

HADOOP_HOME/etc/hadoop/hdfs-site.xml
HADOOP_HOME/etc/hadoop/core-site.xml
HBASE_HOME/conf/hbase-site.xml

  • 需要保证配置文件一致

在PHOENIX_HOME/bin进入phoenix

sqlline.py hostname:2181
或
sqlline.py hostname1,hostname2,hostname3:2181

使用DBeaver连接phoenix

在这里插入图片描述
在这里插入图片描述

通过上面下载phoenix包中的phoenix-client-hbase-2.2-5.1.2.jar加到里面,注意版本一致。
在这里插入图片描述
如果配置了NameSpace,需要在DBeaver中也配置一下

<property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
</property>

在这里插入图片描述
点击测试连接
在这里插入图片描述
旁边为数据库导航,如果没有重启DBeaver或者刷新
在这里插入图片描述

SpringBoot集成HBase

pom.xml

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.2.5</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>5.1.2</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-hbase-compat-2.2.5</artifactId>
            <version>5.1.2</version>
        </dependency>

application.yml

spring:
  datasource:
    driver-class-name: org.apache.phoenix.jdbc.PhoenixDriver
    url: jdbc:phoenix:node01,node02,node03:2181
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      max-active: 100
      max-wait: 60000
      min-evictable-idle-time-millis: 600000
      min-idle: 1
      test-on-borrow: false
      test-while-idle: true
      time-between-eviction-runs-millis: 60000
mybatis:
  mapperLocations: classpath:mybatis/*.xml

将HBASE_HOME/conf/hbase-site.xml和HADOOP_HOME/etc/hadoop/core-site.xml复制到项目resources目录下

问题记录

  1. hbase表与zookeeper记录不一致导致启动异常
    使用zkCli.sh进入zookeeper
zkCli.sh

通过ls 命令查看hbase节点
在这里插入图片描述
通过命令删除该节点(会导致数据丢失)

deleteall /hbase
  1. regionserver.HRegionServer: Failed construction RegionServer
    将HBASE_HOME/lib/client-facing-thirdparty复制到HBASE_HOME/lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值