Phoenix最先是saleforce的一个开源项目,后来成为Apache基金的顶级项目。html
Phoenix是构建在HBase上的一个SQL层,能让咱们用标准的JDBC APIs而不是HBase客户端APIs来建立表,插入数据和对HBase数据进行查询。sql
Phoenix彻底使用Java编写,做为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来讲,其性能量级是毫秒,对于百万级别的行数来讲,其性能量级是秒。
HBase的查询工具备不少,如:Hive、Tez、Impala、Spark SQL、Phoenix等。
Phoenix经过如下方式使咱们能够少写代码,而且性能比咱们本身写代码更好:apache
cd /home/hadoop/apps/ wget http://mirrors.hust.edu.cn/apache/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
mv apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz phoenix-5.0.0-HBase-2.0
cp /home/hadoop/apps/hbase/hbase-2.0.4/conf/hbase-site.xml /home/hadoop/apps/hadoop/hadoop-2.7.7/etc/hadoop/{core-site.xml,hdfs-site.xml} /home/hadoop/apps/phoenix-5.0.0-HBase-2.0/bin/
cd /home/hadoop/apps/phoenix-5.0.0-HBase-2.0 scp -r phoenix-5.0.0-HBase-2.0/ hd2:$PWD scp -r phoenix-5.0.0-HBase-2.0/ hd3:$PWD
scp phoenix-5.0.0-HBase-2.0-server.jar phoenix-core-5.0.0-HBase-2.0.jar hd1:/home/hadoop/apps/hbase/hbase-2.0.4/lib/ scp phoenix-5.0.0-HBase-2.0-server.jar phoenix-core-5.0.0-HBase-2.0.jar hd2:/home/hadoop/apps/hbase/hbase-2.0.4/lib/ scp phoenix-5.0.0-HBase-2.0-server.jar phoenix-core-5.0.0-HBase-2.0.jar hd3:/home/hadoop/apps/hbase/hbase-2.0.4/lib/
stop-hbase.sh start-hbase.sh
bin/sqlline.py hd1:2181
SYSTEM.CATALOG SYSTEM.FUNCTION SYSTEM.LOG SYSTEM.MUTEX SYSTEM.SEQUENCE SYSTEM.STATS
查看全部表app
!tables
#建立完的表名和字段名都会自动转成大写,如需小写,需在建表时给表名和字段名先后加双引号。以下: create table "t_test"( "id" INTEGER NOT NULL PRIMARY KEY("id"), "name" VARCHAR, "age" INTEGER ); ###建表后默认表名和字段都是大写的### create table t_test( id INTEGER NOT NULL PRIMARY KEY(id), name VARCHAR, age INTEGER );
插入/更新数据ide
upsert into "t_test" ("id","name","age") values(1,'zhangsan',23); upsert into "t_test" ("id","name","age") values(2,'lisi',35); upsert into "t_test" ("id","name","age") values(3,'tianqi',66);
select * from "t_test";
delete from "t_test" where "id" =1;
删除表工具
drop table "t_test";
以上在phoenix中的DDL和DML操做在hbase对应的表中也会同时触发,即操做经过phoenix来操做hbase。oop
退出性能
!quit
http://phoenix.apache.org/language/index.html