phoenix部署手册-基于hbase
背景描述:
phoenix基于hbase的SQL层,映射hbase的表,也可以映射视图(VIEW)
部署安装比较简单
映射表和视图的区别:
映射表:
在Phoenix建表错误不易更改;
删除会连同hbase源数据一起删;
表映射,可以查询和更改hbase数据
视图映射:
在Phoenix创建hbase表的视图;
只提供查询功能;
有问题随时可以删除视图重建;
注:初次使用Phoenix,了解浅显,仅以部署安装为主,其余不多做描述。
架构描述:
zookeeper+hadoop+hbase 集群,部署在5个节点上。
phoenix客户端 : 部署在5个节点的任意一节点上,映射hbase中表,便于执行SQL查询。
squirrel sql client : 图形化工具,可以查看兼容JDBC的数据库,类似SQLyog,navicat工具
部署安装:
选择格式:phoenix-[version]-bin.tar 与hbase版本对应:apache-phoenix-4.11.0-HBase-1.2-bin.tar.gz
两个概念:
phoenix server : HBase region server and maste (hbase集群所有节点)
phoenix client :部署phoenix 的机器节点(该节点可以部署在任何机器上)
涉及IP地址:
phoinix server:
hbase集群:
Hmaster:172.21.10.1~2
Hregion:172.21.10.3~5
phoenix client:
172.21.10.2 (任意机器)
zookeeper集群:
172.21.10.3~5
phoenix 连接hbase :
是通过访问zookeeper地址:
$ sqlline.py 172.21.10.3,172.21.10.4,172.21.10.5:2181 #phoenix部署在任意节点时
Linux 操作步骤:
(1)解压
cd /data
tar -xf apache-phoenix-4.11.0-HBase-1.2-bin.tar.gz
cd apache-phoenix-4.11.0-HBase-1.2-bin
ls #可以看到很多jar包
(2)有用jar包
phoenix-4.11.0-HBase-1.2-server.jar (其他的包也可放入)
#复制到hbase所有节点的:/usr/local/hbase/lib 目录下
phoenix-4.11.0-HBase-1.2-client.jar
#复制到phoenix client的CLASSPATH目录下面:(需要在/etc/profile中设置环境变量)
#本节点的CLASSPATH:/data/data/apache-phoenix-4.11.0-HBase-1.2-bin
#所有的jar包都在这个路径下,所以不必复制了
phoenix-4.11.0-HBase-1.2-client.jar
phoenix-4.11.0-HBase-1.2-thin-client.jar
phoenix-core-4.11.0-HBase-1.2.jar
#这3个jar包:SQuirrel图形工具所必须的。需要复制到安装目录下的lib目录下面。
#暂时不用管,安装SQuirrel时再复制。
(3)设置phoenix环境变量
在/etc/profile中添加:
export PHOENIX_HOME=/data/apache-phoenix-4.11.0-HBase-1.2-bin
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
执行source /etc/profile 生效
(4)附权
phoenix目录及复制到所有节点上/usr/local/hbase/lib下的jar包都需要hadoop.hadoop权限
chown -R hadoop.hadoop /data/apache-phoenix-4.11.0-HBase-1.2-bin
chown -R hadoop.hadoop /usr/local/hbase/lib/phoenix-*
(5)phoenix连接hbase的sqlline.py是基于Python编写的
路径: /data/apache-phoenix-4.11.0-HBase-1.2-bin/bin/sqlline.py
sqlline.py脚本中:import argparse 需要argparse模块,现网机器上默认没有这个模块包,需要单独下载
argparse安装:
tar -xf argparse-1.4.0.tar.gz
cd argparse-1.4.0
python setup.py install
(6)重启hbase
stop-hbase.sh
start-hbase.sh
登录测试
建表测试:
在hbase创建表:
>create 'phoenix','info'
插入数据:
> put 'phoenix', 'row001','info:name','phoenix'
>put'phoenix','row002','info:name','hbase'
在phoenix中建相同结构的表:
create table "phoenix"("row" varchar primary key, "info"."name" varchar);
在phoenix中查询表:表名要用 "" 引起来
--ok