返回 导航

大数据

hangge.com

HBase - Phoenix的安装使用教程1(基本介绍、安装部署)

作者:hangge | 2020-09-01 08:10

序:基本介绍

1,什么是 Phoenix?

  • Phoenix 是构建在 HBase 上的一个 SQL 层,能让我们用标准的 JDBC APIs 而不是 HBase 客户端 APIs 来创建表,插入数据和对 HBase 数据进行查询。 
  • Phoenix 完全使用 Java 编写,作为 HBase 内嵌的 JDBC 驱动。Phoenix 查询引擎会将 SQL 查询转换为一个或多个 HBase 扫描,并编排执行以生成标准的 JDBC 结果集。
  • Phoenix 直接使用 HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。 

2,Phoenix 与 HBase 的关系

(1)Phoenix HBase 中的表是独立的,两者之间没有必然的关系。
  • Phoenix HBase 集成后会创建六张系统表:SYSTEM.CATALOGSYSTEM.FUNCTIONSYSTEM.LOGSYSTEM.SEQUENCESYSTEM.STATS,其中 SYSTEM.CATALOG 表用于存放 Phoenix 创建表时的元数据。
  • Phoenix 创建表时会自动调用 HBase 客户端创建相应的表,并且在 SYSTEM.CATALOG 系统表中记录 Phoenix 创建表时的元数据,其主键的值对应 HBase RowKey,非主键的列对应 HBase Column(列族不指定时为 0,且列会进行编码)
(2)如果是通过 Phoenix 创建的表,那么必须通过 Phoenix 客户端来对表进行操作,因为通过 Phoenix 创建的表其非主键的列会进行编码。

一、Phoenix 的搭建

1,准备工作

    由于 Phoenix 是内嵌在 HBase JDBC 驱动,因此我们先要安装 JDKHBase Zookeeper,并配置好 JAVA_HOME 环境变量。具体参考我之前写的文章:

2,下载 Phoenix 安装包

(1)首先访问 Phoenix 官网(点击打开)根据 HBase 版本下载相应的安装包:

(2)将下载下来的压缩包上传到 Master 节点(比如 /home 目录下),执行如下命令进行解压:
tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz

(3)接着进入解压后的目录,将目录下的所有 jar 包拷贝到集群中每个节点(主节点也要拷贝)的 hbase lib 目录下: 
注意:网上说只要拷贝 phoenix-5.0.0-HBase-2.0-server.jar 就行了,但我测试发现后面执行 sqlline.py 会一直停在中途,无法成功。同时访问 HBase Web UI 页面可以看到其一直处于 RIT 状态(Regions In Transition)。
cp *.jar /home/hbase-2.2.4/lib/

(4)同时将 hbase/conf 目录下 hbase-site.xml 文件放到 phoenix bin 目录下:
cp /home/hbase-2.2.4/conf/hbase-site.xml /home/apache-phoenix-5.0.0-HBase-2.0-bin/bin

3,配置环境变量

(1)执行如下命令编辑 profile 文件:
vi /etc/profile

(2)在文件末尾添加如下配置,然后保存退出:
# For Phoenix 
export PHOENIX_HOME=/home/apache-phoenix-5.0.0-HBase-2.0-bin
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PHOENIX_HOME/bin:$PATH

(3)最后执行如下命令让配置生效:
source /etc/profile

4,重启 HBase

进入 Hbase 目录,执行如下命令重启:
./bin/start-hbase.sh
./bin/stop-hbase.sh

5,启动 Phoenix

(1)执行如下命令进入 phoenix 的终端(启动脚本 sqlline.py 参数是 Zookeeper 节点);
sqlline.py localhost:2181

(2)首次进入 phoenix 终端会自动建立的 phoenix 系统表,我们执行如下命令可以查看当前所有的表:
!table

(3)执行如下命令则可退出 phoenix 的终端:
!exit

(3)访问 HBase Web UI 页面也可以看到新创建的这些表:
评论

全部评论(0)

回到顶部