解压phoenix的对应版本后,将对应的需要的jar包拷贝到相应的位置
--将phoenix安装目录下的phoenix-version-client.jar拷贝到hbase的lib目录下
--将phoenix安装目录下的lib子目录中的phoenix-core-version.jar拷贝到hbase的lib目录下
--将hbase/conf目录下hbase-site文件放到phoenix安装的bin目录下
在启动phoenix之前,先启动zookeeper,hdfs,hbase的所有守护进程,然后启动phoenix,
--bin/sqlline.py hostname:2181
第一次启动的过程稍微慢一点,因为会在phoenix中创建几张表,进入以后我们直接来创建一张表
create table "us_population"(
"state" varchar(2),
"city" varchar(15),
"info"."population" bigint,
constraint pk primary key("state","city")
);
如果这里的表名,字段不加双引号,则都是默认为大写体现,若加上了双引号,在对表进行查询时也应该加上双引号,否则默认为大写查询,我们在hbase中去查询我们在phoenix创建的表的数据,如果对phoenix的表进行数据更新,则hbase的表也可以更新
我们在phoenix中进行一次数据的聚合查询,根据结果可以发现这个聚合查询的速度是非常快的,不用像hive中会去跑MapReduce任务,所以phoenix在这方面的速度是很快的,但是tb级的数据还是得在hive上分析
2、在phoenix中创建hbase中已存在的表的映射
先在hbase中创建一张表,
create 'phoenix:teacher','info','contact'
并插入数据
put 'phoenix:teacher','1001','info:name','Jack'
put 'phoenix:teacher','1001','info:age','28'
put 'phoenix:teacher','1001','info:gender','male'
put 'phoenix:teacher','1001','contact:address','shanghai'
put 'phoenix:teacher','1001','contact:phone','13458646987'
put 'phoenix:teacher','1002','info:name','Jim'
put 'phoenix:teacher','1002','info:age','30'
put 'phoenix:teacher','1002','info:gender','male'
put 'phoenix:teacher','1002','contact:address','tianjian'
put 'phoenix:teacher','1002','contact:phone','13512436987'
然后在phoenix中创建映射表
create table "phoenix:teacher"(
"ROW" varchar primary key,
"contact"."address" varchar,
"contact"."phone" varchar,
"info"."age" varchar,
"info"."gender" varchar,
"info"."name" varchar
);
这样最简单的互相映射的过程就完成了,