1) 容易集成:如Spark,Hive,Pig,Flume和Map Reduce。
2) 性能好:直接使用HBase API以及协处理器和自定义过滤器,可以为小型查询提供毫秒级的如高 性能 ,或者为数千万行提供数秒的性能。
3) *** 作简单:DML命令以及通过DDL命令创建表和版本化增量更改。
4) 安全功能: 支持GRANT和REVOKE 。
5) 完美支持Hbase二级索引创建。
解压到/opt/module 改名为phoenix
[root@hadoop101 module]$ tar -zxvf /opt/software/apache-phoenix-4.14.1-HBase-1.3-bin.tar.gz -C /opt/module [root@hadoop101 module]$ mv apache-phoenix-4.14.1-HBase-1.3-bin phoenix
在phoenix目录下
[root@hadoop101 module]$ cd /opt/module/phoenix/
向每个节点发送server jar
[root@hadoop101 phoenix]$ cp phoenix-4.14.1-HBase-1.3-server.jar /opt/module/hbase-1.3.1/lib/ [root@hadoop101 phoenix]$ scp phoenix-4.14.1-HBase-1.3-server.jar hadoop102:/opt/module/hbase-1.3.1/lib/ [root@hadoop101 phoenix]$ scp phoenix-4.14.1-HBase-1.3-server.jar hadoop103:/opt/module/袜橡坦hbase-1.3.1/lib/
向每个节点发送client jar
[root@hadoop101 phoenix]$ cp phoenix-4.14.1-HBase-1.3-client.jar /opt/module/hbase-1.3.1/lib/ [root@hadoop101 phoenix]$ scp phoenix-4.14.1-HBase-1.3-client.jar hadoop102:/opt/module/hbase-1.3.1/lib/ [root@hadoop101 phoenix]$ scp phoenix-4.14.1-HBase-1.3-client.jar hadoop103:/opt/module/hbase-1.3.1/lib/
#phoenix export PHOENIX_HOME=/opt/module/phoenix export PHOENIX_CLASSPATH=$PHOENIX_HOME export PATH=$PATH:$PHOENIX_HOME/bin
[root@hadoop101 phoenix]$ /opt/module/phoenix/bin/sqlline.py hadoop101,hadoop102,hadoop103:2181
!table 或 !tables
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))
如下显示:
在phoenix中,默认情况下,表名等会自动转换为大写,若要告桐小写,使用双引号,如"us_population"。
upsert into us_population values('NY','NewYork',8143197)
select * from us_population select * from us_population wherestate='NY'
delete from us_population wherestate='NY'
drop table us_population
!quit
默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的。如图1和图2,US_POPULATION是在phoenix中直接创建的,而kylin相关表是在hbase中直接创建的,在phoenix中是查看不到kylin等表的。
图1 phoenix命令行中查看所有表:
图2 hbase命令行中查看所有表:
如果要在phoenix中 *** 作直接在hbase中创建的表,则需要在phoenix中进行表的映射。映射方式有两种: 视图映射和表映射
Hbase 中test的表结构如下,两个列簇name、company.
Rowkeynamecompany
empidfirstnamelastnamenameaddress
启动Hbase shell
[root@hadoop101 ~]$ /opt/module/hbase-1.3.1/bin/hbase shell
创建Hbase表test
hbase(main):001:0> create 'test','name','company'
创建表,如下图:
Phoenix创建的视图是只读的,所以只能用来做查询,无法通过视图对源数据进行修改等 *** 作。
在phoenix中创建视图test表
0: jdbc:phoenix:hadoop101,hadoop102,hadoop103>create view "test"(empid varchar primary key,"name"."firstname" varchar,"name"."lastname" varchar,"company"."name" varchar,"company"."address" varchar)
删除视图
0: jdbc:phoenix:hadoop101,hadoop102,hadoop103>drop view "test"
使用Apache Phoenix创建对HBase的表映射,有两种方法:
1) 当HBase中已经存在表时,可以以类似创建视图的方式创建关联表,只需要将create view改为create table即可。
0: jdbc:phoenix:hadoop101,hadoop102,hadoop103>create table "test"(empid varchar primary key,"name"."firstname" varchar,"name"."lastname" varchar,"company"."name" varchar,"company"."address" varchar)
2) 当HBase中不存在表时,可以直接使用create table指令创建需要的表,系统将会自动在Phoenix和HBase中创建person_infomation的表,并会根据指令内的参数对表结构进行初始化。
0: jdbc:phoenix:hadoop101,hadoop102,hadoop103>create table "test"(empid varchar primary key,"name"."firstname" varchar,"name"."lastname" varchar,"company"."name" varchar,"company"."address" varchar)
在Phoenix中查看数据
select * from STOCK_SYMBOL
如下显示:
在Hbase中查看数据
scan "STOCK_SYMBOL"
更多使用详情,请参考 http://phoenix.apache.org/phoenix_spark.html
相比于直接创建映射表,视图的查询效率会低,原因是:创建映射表的时候,Phoenix会在表中创建一些空的键值对,这些空键值对的存在可以用来提高查询效率。
使用create table创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。
使用java或者scala写一个通过JDBC方式连接Phoenix进行查询的程序时,需要调整一些 Phoenix的参数 ,例如线程的数量 phoenix.query.threadPoolSize ,但是按照官方文档只是说把参数加到hbase-site.xml中,但是并没有说hbase-site.xml应该放到什么散雹好位置,所以导致无法读到hbase-site.xml里面的配置。
首先说一下结论,Phoenix程序是在 user.dir 目录下去找hbase-site.xml的。肆蚂所以有两种解决方案:
这样程序中就冲铅可以加载到hbase-site.xml配置的参数了。
注:本文使用的是HDP发布的phoenix-4.7.0.2.5.0.0-1245版本
出现此类情况可通过以下几种汪历方法解决
1.应用程序出错,内存地址不能读或不能写
下载memtest工具诊断内存,下载地址:http://rj.baidu.com/soft/detail/28179.html?ald。
2.运行系统文件检测
cmd输入sfc/scannow,这是Windows常用系统文件修复命令。仿陵渗
3.启动必须的软件,关闭几个无关的正在运行的应用程序,看错误是否还会重现。若已解决,就知道是哪两个软件冲突,不再同时运行这两个软件即可解决。
4.硬盘出现坏道,需要检测和修复。
5.若是相关软件自身的组件缺失备脊,只需要重新安装或系统更新即可。
6.检查排除病毒和恶意软件的问题。
7.更新需要软件的驱动,移除不需要的硬件驱动。
扩展资料:
Phoenix OS凤凰系统硬盘安装
1.搜索输入phoenixos选择官网进入。
2.点击右上角凤凰系统。
3.然后,点击PC版。
4.接着,点击官方下载器。
5.再右键点击该文件--以管理员身份运行。
6.点击下载。
7.接着选择安装到硬盘。
8.选择目标盘。
9.根据系统的硬盘空间选择存储容量,点击全新安装。
10.最后,重启电脑即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)