本文介绍: Apache Phoenix简介存储结构基本操作安装(附安装包)1. 简介概述1.1 phoenix 特点1.2 存储结构1.3 Phoenix 与 Hbase 之间的表映射关系1.4 Phoenix数据类型2. 基于CDH6.3.2离线安装 Phoenix Parcel 5.0.0-2.0(附安装包)3. Phoenix 常用命令基本操作4. 补充……

1. 简介概述

phoenix

Phoenix 最早是 saleforce一个开源项目,后来成为 Apache 的顶级项目
Phoenix 构建在 HBase 之上的开源 SQL 层。能够让我们使用标准的 JDBC API 去建表,插入数据查询 HBase 中的数据,从而可以避免使用 HBase 的客户端 API。

Apache Phoenix 通过结合两个方面的优点,在Hadoop中为低延迟应用提供了OLTP和运营分析

Apache Phoenix与Spark、Hive、Pig、Flume、Map Reduce等Hadoop产品完全集成

通过定义良好的行业标准api成为OLTP和Hadoop操作分析可信数据平台

我们应用和 HBase 之间添加了 Phoenix,并不会降低性能,而且我们也少写了很多代码

1.1 phoenix 特点

1.2 存储结构

HBase 的数据模型映射关系数据模型
数据模型映射关系
对于Phoenix来说,HBase的rowkey会被转换成primary keycolumn family如果不指定则为0否则字段名会带上,qualifier转换成表的字段

1.3 Phoenix 与 Hbase 之间的表映射关系

phoenix数据表映射

1.4 Phoenix数据类型

数据类型 Java Map 占用大小 (byte)
INTEGER java.lang.Integer 4
UNSIGNED_INT java.lang.Integer 4
BIGINT java.lang.Long 8
UNSIGNED_LONG java.lang.Long 8
TINYINT java.lang.Byte 1
UNSIGNED_TINYINT java.lang.Byte 1
SMALLINT java.lang.Short 2
UNSIGNED_SMALLINT java.lang.Short 2
FLOAT java.lang.Float 4
UNSIGNED_FLOAT java.lang.Float 4
DOUBLE java.lang.Double 8
UNSIGNED_DOUBLE java.lang.Double
DECIMAL java.math.BigDecimal DECIMAL(p.,s)
BOOLEAN java.lang.Boolean
TIME java.sql.Time
DATE java.sql.Date 8
TIMESTAMP java.sql.Timestamp 12
UNSIGNED_TIME java.sql.Time 8
UNSIGNED_DATE java.sql.Date 8
UNSIGNED_TIMESTAMP java.sql.Timestamp 12
VARCHAR java.lang.String VARCHAR(n)
CHAR java.lang.String CHAR(n)
BINARY byte[] BINARY(n)
VARBINARY byte[] VARBINARY

2. 基于CDH6.3.2离线安装 Phoenix Parcel 5.0.0-2.0(附安装包

# 本安装方式为Linux http离线安装方式,不需要可跳过此步骤

CDH6.3.2 phoenix5.0.0-2.0 百度网盘 parcel安装包下载地址

链接https://pan.baidu.com/s/1VpNYiZKToHAdeBKUylgQsQ
提取码:qstv

1.提前下载下面几个文件放置cdh节点的/var/www/html下,PHOENIX-1.0.jar放置在/opt/cloudera/csd

manifest.json
PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el6.parcel
PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el6.parcel.sha
PHOENIX-1.0.jar

2.启动httpd

systemctl start httpd

如果已启动则不需要启动访问节点ip/phoenix看是否启动成功,若出现下面的界面则成功。

如果没有httpd使用yum安装一下:

yum install -y httpd

3.使用parcel安装Phoenix5
在CM中选择主机->Parcel–>配置.如果有未安装的parcel包,可以直接看到选择然后点击保存点击分配’–>‘激活’.


4.CM中添加Phoenix服务
确定CSD配置目录/opt/cloudera/csd,在CM中选择管理–>设置,搜索csd对路径配置

下载的PHOENIX-1.0.jar已经放置在了/opt/cloudera/csd,直接重启CM服务.
# Cloudera-UI不生效,需使用命令重新启动

systemctl restart cloudera-scm-server

重新登录CM,重启Cloudera Management Service过期配置服务

此时可以看到Phoenix已经出现在CM的管理页面

5.配置HBASE
phoenix是在hbase实现了SQL接口,并且手工安装开源版phoenix的时候需要hbase节点lib目录下放置phoenix的jar包,通过CM安装就免去这些手工的工作

在Hbase–>配置 中搜索hbasesite然后在”hbasesite.xml 的 HBase 服务高级配置代码段” 中配置如下内容

或点击以XML格式查看输入下面的代码:

<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property> 
<property>
 <name>phoenix.functions.allowUserDefinedFunctions</name>
 <value>true</value>
 <description>enable UDF functions</description>
</property>

修改完成后重启hbase服务。

6.启动Phoenix验证

/opt/cloudera/parcels/PHOENIX/bin/phoenix-sqlline hbase1,hbase2,hbase3
或
phoenix-sqlline

3. Phoenix 常用命令基本操作

# 启动phoenix shell

phoenix-sqlline

# 退出

!quit

# 查看所有表

!tables

# 查询

select * from "test";

# 查看描述

!desc 表名

# 删除

drop table "test";

# 使用视图view映射Hbase中表
view只可进行查询,且在删除表时不删除Hbase中源表,只删除当前view映射
view名称与表名一致,view列名和hbase列族名的列限定符一致

create view "test" (id varchar primary key,"info"."createtime" UNSIGNED_DATE,"info1"."age" UNSIGNED_LONG)column_encoded_bytes=0;

# 使用Table映射Hbase中表
对phoenix中Table进行CRUD时,Hbase中表也会发生变化。
drop table 时 也会删除Hbase中表。

create table "test" ("ROW" varbinary primary key,"info"."createtime" varbinary,"info1"."age" varbinary)column_encoded_bytes=0;

# 插入数据

put 'test','1001','info:createtime',Bytes.toBytes(1602237645881)
put 'test','1001','info1:age',Bytes.toBytes(16)

4. 补充

Apache pheonix 官方地址https://phoenix.apache.org/

原文地址:https://blog.csdn.net/haoheiao/article/details/126583757

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_30328.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注