使用phoenix和SQuirrel操作hbase

1、Phoenix简介及安装

 

1.1 Phoenix简介

 

概观(来自apache官网)

Apache Phoenix通过结合以下两方面的优势,为Hadoop的低延迟应用程序提供OLTP和运营分析功能:

· 具有完整ACID事务处理能力的标准SQL和JDBC API的强大功能

· 通过利用HBase作为其后备存储,NoSQL世界的后期绑定,模式读取功能的灵活性

Apache Phoenix与其他Hadoop产品完全集成,如Spark,Hive,Pig,Flume和Map Reduce。

 

1.2 环境说明

使用版本说明 :

  Hbase : 1.2.5

Phoenix (version 4.13)

sqlline version 1.2.0

 

phoenix安装节点 : 192.168.1.54  node005

192.168.1.55  node006

192.168.1.57  node007

192.168.1.58  node008

192.168.1.59  node009

192.168.1.60  node010

phoenix下载链接 :   http://phoenix.apache.org/download.html           

 

1.3 安装过程

  

安装过程很简单,在这里不赘述.

需要注意的地方 :

要把phoenix安装目录下的: 

phoenix-4.13.1-HBase-1.2-server.jar

拷贝到hbase的lib目录下

启动方法 : 进入到phoenix安装目录下的bin目录下

执行 ./sqlline.py node005:4180

其中node005指的是安装了phoenix的一台服务器

4180是zookeeper对应的端口号

出现如下提示,证明phoenix安装并启动成功:

 使用phoenix和SQuirrel操作hbase_第1张图片

 

2SQuirrel简介及安装

 

 

2.1 SQuirrel简介

概观

SQuirreL SQL Client是一个图形Java程序,它允许您查看JDBC兼容数据库的结构,浏览表中的数据,发出SQL命令等.从SQuirreL版本3.0开始,Java支持的最低版本是1.6.x。

SQuirreL的功能可以通过使用插件来扩展 。

SQuirrel最初是在GNU通用公共许可证下 发布的。从版本1.1beta2开始,它已经在 GNU Lesser General Public License下发布

 

2.2 环境说明

 

使用版本说明:

1. SQuirrel版本:  Version 3.8.1

2. JDK版本 : 1.8.0_131

下载链接 : http://www.squirrelsql.org/#installation

2.3 安装过程

 

安装过程十分简单,一路next即可.

需要注意的地方 :  需要把phoenix安装目录下的phoenix-4.13.1-HBase-1.2-client.jar 拷贝到squirrel-sql安装目录的lib文件夹下

Squirrel-sql的安装目录结构如下图所示:

 使用phoenix和SQuirrel操作hbase_第2张图片

启动方式 : 点击squirrel-sql.bat即可

接下来 : 添加Phoenix驱动

 

点击驱动程序,如果是英文版的,点击Drivers

点击+,添加新的驱动程序 :

其中:

名字(Name): Phoenix

类名(ClassName)为:org.apache.phoenix.jdbc.PhoenixDriver

地址示例 : jdbc:phoenix:192.168.1.56:4180

注意 : 如果zookeeper端口号不是默认的2181的话 一定要在服务器后面加上 : zookeeper端口号,否则会连接不上!!!

 使用phoenix和SQuirrel操作hbase_第3张图片

 

配置好就可以点击别名 进行连接了!

 

那么这个连接上的原理是什么呢?

去当前用户下的.squirrel-sql文件夹里面去一探究竟:

注意文件SQLDrivers.xml

 使用phoenix和SQuirrel操作hbase_第4张图片

打开该文件:

拖到该文件的最后,看到了我们刚刚配置的Phoenix的连接!

 使用phoenix和SQuirrel操作hbase_第5张图片

3使用SQuirrel操作hbase

 

3.1 操作hbase中不存在的表

简单示例 :

创建一个person表格进行测试 :

操作如下 :

点击SQL,写好SQL语句

create table person (id integer not null primary key,name varchar,age integer);

点击run(奔跑的小人)即可!

或者ctrl + enter组合键执行

 使用phoenix和SQuirrel操作hbase_第6张图片

查看phoenix里面对应的该表 :

执行命令 :  !table

 

可以看到 : 在phoenix这张表的表名为 : PERSON

需要注意的是

通过squirrel添加的表,会自动转换为大写,Phoenix是区分大小写的,所以在Hbase Shell下,表名都要用大写

再去hbase下面看对应的该表 :

执行命令 :  list

 使用phoenix和SQuirrel操作hbase_第7张图片

该表的详细描述 :

执行命令 :  descirbe PERSON

 使用phoenix和SQuirrel操作hbase_第8张图片

3.2 操作hbase中已经的表

 

可以看到 , 通过SQuirrel创建的表,在hbase,phoenix里都会生成相对应的表,

但是hbase创建的表,在phoenix里面是找不到的

在hbase里面创建一张表 :

执行命令 : create TEST  ,info

 

向表格里面插入一条数据 :

put 'TEST','person', 'info:xuemengran', '14'

 

 

但是去SQuirrel客户端里面去查看,发现是不存在该表的,

 使用phoenix和SQuirrel操作hbase_第9张图片

这个时候, 需要手动建立hbase到phoenix的映射,执行命令 :

create table TEST(id integer not null primary key,name2 varchar,age integer);

执行结束后就能够看到该表

删除该表:

drop table TEST;

执行结束后,去hbase 下面看, 发现hbase的相应表结构也被删除了!

所以如果是按照表格-->表格的映射操作时,在squirrel执行删除操作时要慎重!

 

4问题总结

 

1. Phoenix启动的时候报错

Error: ERROR 2007 (INT09): Outdated jars. Newer Phoenix clients can't communicate with older Phoenix servers. The following servers require an updated phoenix-[version]-server.jar to be put in the classpath of HBase: region=SYSTEM.CATALOG,,1516957847613.3a7da538a42e15e4b52f4ff9026a3df9., hostname=master,16020,1526467301507, seqNum=33 (state=INT09,code=2007)

 

问题原因 : phoenix和hbase版本不匹配

解决办法 : 更换一个更新的hbase版本,或者降低一下Phoenix版本

 

2. SQuirrel卸载重装后,不能正常使用的问题

问题原因 : SQuirrel安装后,会在c盘当前用户的目录下,创建一个.squirrel-sql文件夹

卸载重装后,该文件夹会对新装的SQuirrel产生影响

解决办法 : 重新安装前,要首先清空该文件夹

使用phoenix和SQuirrel操作hbase_第10张图片

你可能感兴趣的:(大数据开发)