赞
踩
软件 | 版本 | 说明 |
---|---|---|
CentOS | 7.6 | - |
CDH版本 | Cloudera Express 5.16.2 (JDK 1.8) | 对应hadoop2.6.0 |
Hbase | 社区版 2.0.5 | 非CDH parcels自带, 与phoenix适配器版本: phoenix-5.0.0-HBase-2.0-server.jar |
Phoenix | 社区版 5.0.0 | - |
[root@dn3 ~]# cd /opt/module/
[root@dn3 module]# ll
drwxr-xr-x 5 502 gam
es 4096 Jun 27 2018 phoenix
[root@dn3 module]# cd phoenix
[root@dn3 phoenix]# /usr/bin/python2 bin/sqlline.py dn3,dn4,dn5:2181
执行上述命令,启动phoenix, 长时间卡住, 但不报错:
可能的原因有:
- cdh的hadoop与hbase2.0.5的版本是否匹配;
- hbase的meta元数据信息是否已经损坏;
- hbase与phoenix的版本是否匹配,详情其官方.
经查询, 上述原因的1、3都不是我这边的触发原因.
考虑到此前我本地通过ClouderaManager, 已经安装过parcels版本的hbase(版本号: 1.2.0+cdh5.16.2).
新安装的2.x版本, 可能与老版本在元数据上并不兼容.
由于本地是使用VMWare搭建的虚拟机集群, 且hbase数据仅用于实验目的. 故采用暴力方式处理(如果是prod, 且hbase中已经存储了重要数据, 请仔细查找直接原因, 同时做好数据备份):
- 删除hdfs目录 /hbase;
- 删除ZooKeeper上的 /hbase 节点.
- 重启Hbase集群;
执行完上述操作后, 再次重新运行phoenix 命令行启动命令, 即连接上hbase了:
[root@dn3 phoenix]# /usr/bin/python2 bin/sqlline.py dn3,dn4,dn5:2181
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:dn3,dn4,dn5:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:dn3,dn4,dn5:2181
22/07/14 01:37:36 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Connected to: Phoenix (version 5.0)
Driver: PhoenixEmbeddedDriver (version 5.0)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
136/136 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:dn3,dn4,dn5:2181>
Phoenix使用注意事项:
在Phoenix中,默认情况下,库名、表名、字段名等会自动转换为大写,如果要使用小写,请使用双引号, 比如"name".
在Phoenix下的所有操作, 前提都是Hbase中不存在的库、表, 然后在Phoenix中以sql的方式来创建hbase中的库、表、记录等.
如果Hbase中已经存在了表, 在Phoenix中如何映射, 有专门篇章来讲解.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。