一、下载与安装
1.1、下载地址
https://phoenix.apache.org/download.html#
http://www.apache.org/dyn/closer.lua/phoenix/apache-phoenix-4.14.1-HBase-1.3/bin/apache-phoenix-4.14.1-HBase-1.3-bin.tar.gz
1.2、上传到/opt/software/ 解压tar -zxvf apache-phoenix-4.14.1-HBase-1.3-bin.tar.gz -C /opt/module 并改名为phoenix
1.3、 在/opt/module/phoenix/下将core和client这俩个包拷贝到各个节点的hbase的lib下面
scp ./phoenix-core-4.14.1-HBase-1.3.jar slave02:/opt/module/hbase-1.3.1/lib/ scp ./phoenix-core-4.14.1-HBase-1.3.jar slave03:/opt/module/hbase-1.3.1/lib/ scp ./phoenix-4.14.1-HBase-1.3-client.jar slave03:/opt/module/hbase-1.3.1/lib/ scp ./phoenix-4.14.1-HBase-1.3-client.jar slave02:/opt/module/hbase-1.3.1/lib/
1.4、将hbase的conf下的hbase-site.xml,和hadoop下面的core-site.xml和hdfs-site.xml拷贝到phoenix的bin/下面
1.5、在root权限下配置phoenix的环境变量 在/etc/profile 下添加如下内容
#phoenix export PHOENIX_HOME=/opt/module/phoenix export PHOENIX_CLASSPATH=$PHOENIX_HOME export PATH=$PATH:$PHOENIX_HOME/bin
1.6、启动zookeeper,hadoop,hbase
1.7、启动phoenix,bin/sqlline.py master01,slave02,slave03:2181
二、Phoenix SQL语法
1、数据库操作
--CREATE SCHEMA (创建数据库操作) CREATE SCHEMA [IF NOT EXISTS] 数据库名字 --USE USE 数据库名 0: jdbc:phoenix:CentOS> use test; No rows affected (0.003 seconds) --DROP SCHEMA DROP SCHEMA IF EXISTS 数据库名 0: jdbc:phoenix:CentOS> drop schema if exists test; No rows affected (0.005 seconds)
报错如下:
Error: ERROR 725 (43M08): Cannot create schema because config phoenix.schema.isNamespaceMappingEnabled for enabling name space mapping isn't enabled. schemaName=jiangzz (state=43M08,code=725) java.sql.SQLException: ERROR 725 (43M08): Cannot create schema because config phoenix.schema.isNamespaceMappingEnabled for enabling name space mapping isn't enabled. schemaName=jiangzz
解决:往配置文件中添加如下配置,必须同时修改$HASE_HOME/conf/hbase-site.xml文件和 $PHOENIX_HOME/bin/hbase-site.xml文件,修改完成重启Hbase服务
<property> <name>phoenix.schema.isNamespaceMappingEnabled</name> <value>true</value> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value> </property>
2、显示所有表
!table或 !tables
3、建表语句
--CREATE TABLE (建表必须声明主键) CREATE TABLE IF NOT EXISTS [SCHEMA.]表名( 字段名 约束, ... ) 表选项 --示例: CREATE TABLE IF NOT EXISTS us_population ( state CHAR(2) NOT NULL, city VARCHAR NOT NULL, population BIGINT CONSTRAINT my_pk PRIMARY KEY (state, city)); DESC TABLE !DESC [SCHEMA.]表名; DROP TABLE DROP TABLE IF EXISTS 表名 [CASCADE] ps:cascade表示会将该表以及该表的所有依赖都给删除。
4、增加或删除表字段
ALTER TABLE ALTER (TABLE|VIEW) 表名 ADD [IF NOT EXISTS] 列名 ALTER (TABLE|VIEW) 表名 DROP COLUMN [IF EXISTS] 列名 ALTER (TABLE|VIEW) 表名 SET options 增加age字段: alter table t_user add if not exists age integer; 删除age字段: alter table t_user drop column if exists age ; 对表设置声明周期: alter table t_user set TTL=100;
5、插入&更新
插入记录 upsert into us_population values('NY','NewYork',8143197); 查询记录 select * from us_population ; select * from us_population wherestate='NY'; 删除记录 delete from us_population wherestate='NY';
参考:
https://blog.csdn.net/weixin_38231448/article/details/103949839