CDH安装phoenix

CDH安装phoenix

1.背景

​ base 提供很方便的shell脚本以及java API等方式对Hbase进行操作,但是对于很对已经习惯了关系型数据库操作的开发来说,有一定的学习成本,如果可以像操作mysql等一样通过sql实现对Hbase的操作,那么很大程度降低了Hbase的使用成本。Apache Phoenix 组件就完成了这种需求,官方注解为 “Phoenix -we put the SQL back in NoSql”,通过官方说明,Phoenix 的性能很高,相对于 hbase 原生的scan 并不会差多少,而对于类似的组件 hive、Impala等,性能有着显著的提升

2.安装

1.集群环境

CDH版本是5.16.1,在阿里云上的三台集群.Hbase也是部署了3台机器.三台机器的配置都是2核8G

2.安装的parcel文件下载

从官网选择CDH相近的版本下载:http://www.apache.org/dist/phoenix/,我的CDH是5.16.1的,所以只能选

APACHE_PHOENIX-4.14.0-cdh5.14.2这个版本.

wget http://www.apache.org/dist/phoenix/apache-phoenix-4.14.0-cdh5.14.2/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel
wget http://www.apache.org/dist/phoenix/apache-phoenix-4.14.0-cdh5.14.2/parcels/manifest.json
wget http://www.apache.org/dist/phoenix/apache-phoenix-4.14.0-cdh5.14.2/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel.sha512
3.将parcel文件的hash值写入sha文件
[root@hadoop001 parcel-repo] sha1sum APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel
5aebefdeb239a9dc7a042b891e2aac98336a25bc  APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel

[root@hadoop001 parcel-repo] vim APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel.sha
4.CDH分配并激活Phoenix

5.phoenix-4.14.0-cdh5.12.2-server.jar复制

将phoenix-4.14.0-cdh5.12.2-server.jar这个jar包复制到其余三台机器的hbase/lib路径下

cp /opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/phoenix-4.14.0-cdh5.14.2-server.jar /opt/cloudera/parcels/CDH/lib/hbase/lib/
scp /opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/phoenix-4.14.0-cdh5.14.2-server.jar hadoop002:/opt/cloudera/parcels/CDH/lib/hbase/lib/
scp /opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/phoenix-4.14.0-cdh5.14.2-server.jar hadoop003:/opt/cloudera/parcels/CDH/lib/hbase/lib/
6.启动

启动之前需要重启一下Hbase服务,直接在CDH界面操作

[root@hadoop001 bin] pwd
/opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/bin
[root@hadoop001 bin] ./sqlline.py

使用,基本上是sql的使用

1.建表

CREATE TABLE IF NOT EXISTS dept (
      deptno Integer,
    dname varchar(14),
    loc varchar(13)
      CONSTRAINT dept_pk PRIMARY KEY (deptno));

2.插入数据

upsert into dept values (10, 'ACCOUNTING', 'NEW YORK');
upsert into dept values (20, 'RESEARCH', 'DALLAS');
upsert into dept values (30, 'SALES', 'CHICAGO');
upsert into dept values (40, 'OPERATIONS', 'BOSTON');

3.查询数据

select * from dept;

0: jdbc:phoenix:> select * from dept;
+---------+-------------+-----------+
| DEPTNO  |    DNAME    |    LOC    |
+---------+-------------+-----------+
| 10      | ACCOUNTING  | NEW YORK  |
| 20      | RESEARCH    | DALLAS    |
| 30      | SALES       | CHICAGO   |
| 40      | OPERATIONS  | BOSTON    |
+---------+-------------+-----------+
4 rows selected (0.233 seconds)

3.Phoenix使用注意点(坑)

1.数据类型的转换

转换比较多,这边仅列出部分

mysqlphoenix
char/varcharvarchar
可能会出现mysql的varchar的长度为10,但是phoenix的varchar也为10的时候会插不进去,一般phoenix的长度会设置成mysql的2倍
intinteger
datetime/timestamptimestamp
2.时区

phoenix的a.timezone时区可能会出现不对应(读和写),时区的修改可以通过修改源代码来修复

3.数据重复

有时候根据ID查询一条数据的时候,结果会出现两条一模一样的记录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值