一、安装教程
-
下载解压:https://dlcdn.apache.org/phoenix/phoenix-5.1.2/
-
进入目录:cd /home/hadoop/phoenix/
-
解压:tar -xvf phoenix-hbase-2.1-5.1.2-bin.tar.gz
-
复制
cp /home/hadoop/phoenix/phoenix-hbase-2.1-5.1.2-bin/phoenix-server-hbase-2.1-5.1.2.jar /home/hadoop/hbase/hbase-2.1.0/lib
-
拷贝hadoop配置文件目录下的core-site.xml和hdfs-site.xml到phoenix的bin目录下
cp /home/hadoop/module/hadoop-3.2.2/etc/hadoop/core-site.xml /home/hadoop/phoenix/phoenix-hbase-2.1-5.1.2-bin/bin cp /home/hadoop/module/hadoop-3.2.2/etc/hadoop/hdfs-site.xml /home/hadoop/phoenix/phoenix-hbase-2.1-5.1.2-bin/bin
-
拷贝hbase的conf目录下的hbase-site.xml到phoenix的bin目录下
cp /home/hadoop/hbase/hbase-2.1.0/conf/hbase-site.xml /home/hadoop/phoenix/phoenix-hbase-2.1-5.1.2-bin/bin
-
设置环境变量:vi /etc/profile
#phoenix export PHOENIX_HOME=/home/hadoop/phoenix/phoenix-hbase-2.1-5.1.2-bin/ export PHOENIX_CLASSPATH=$PHOENIX_HOME export PATH=$PATH:$PHOENIX_HOME/bin
-
刷新:source /etc/profile(hadoop用户也要)
-
每个节点hbase配置:vi /home/hadoop/hbase/hbase-2.1.0/conf/hbase-site.xml
<!-- Phoenix 支持HBase 命名空间映射 --> <property> <name>phoenix.schema.isNamespaceMappingEnabled</name> <value>true</value> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value> </property>
-
启动hbase:/home/hadoop/hbase-2.1.0/bin/start-hbase.sh
-
phoenix启动脚本添加
-Djava.security.auth.login.config=/home/hadoop/zookeeper/apache-zookeeper-3.6.3-bin/conf/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf
-
启动
cd /home/hadoop/phoenix/phoenix-hbase-2.1-5.1.2-bin/bin ./sqlline.py node10,node11,node12:2181 ./sqlline.py hdp155,hdp156,hdp157:2181
二、表映射
-
建default空间表
//建表 create 'tb1', 'info' //插入数据 put 'tb1', '1', 'info:name', 'zhan' put 'tb1', '2', 'info:age', '30' //查数据 scan 'tb1'
-
建立视图映射&查看(default空间 )
//建视图映射(数据只能看) create view "tb1"(id varchar primary key,"info"."name" varchar, "info"."age" varchar); //查看数据 select * from "tb1"
-
建立视图映射&查看(自定义空间 )
//建视图映射 CREATE VIEW "zhanzhk"."table1"("pid" varchar primary key,"fml1"."id" varchar,"fml1"."name" varchar); //查看数据 select * from "zhanzhk"."table1";
-
建立表映射&查看(default空间 )
//建表映射(数据可操作) create table "tb1"(id varchar primary key,"info"."name" varchar, "info"."age" varchar) column_encoded_bytes=0; //查看数据 select * from "tb1"
-
建立表映射&查看(自定义空间 )
//建立表映射-- 注:进行表映射时,不能使用列名编码,需将 column_encoded_bytes 设为 0。 create schema if not exists "zhanzhk" ; create table "zhanzhk"."table1"("pid" varchar primary key,"fml1"."id" varchar,"fml1"."name" varchar) column_encoded_bytes=0; //查看数据 select * from "zhanzhk"."table1";
三、语法
ps:phoenix的语法不加双引号的默认都会被转成大写
- 创建schema:create schema if not exists “testdb” ;
- 删除schema:drop schema “testdb”;
- 创建表:create table testTable( id VARCHAR primary key, name VARCHAR, age VARCHAR);
- 删除表:drop table testTable;
- 删除视图:drop view “viewTable”;
- 插入/修改数据 :upsert into testTable(id,name,age) values(‘10’,‘小白’,‘20’);
- 查询数据:select * from testTable where id=‘10’;
- 删除数据:delete from testTable where id=‘10’ ;
- hbase的表映射到phoenix