1. 客户端工具Squirrel
  2. 下载:

HBase,可以用HBase shell进行操作,也可以用HBase Java api进行操作。HBase虽然是一个数据库,但是它的查询语句,很不太好用。要是能像使用Mysql等关系型数据库一样用sql语句操作HBase,那就很Perfect了。

现有工具有很多Hive,Tez,Impala,Shark/Spark,Phoenix等。今天主要记录Phoenix

phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。

其实,可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAP中,再将结果返回存储下来。

2)、phoenix的使用
可以用phoenix的一个客户端工具Squirrel 访问,那么先来看看Squirrel这个工具。

Squirrel SQL Client,是一个连接数据库的客户端工具。一般支持JDBC的数据库都可以用它来连接。(如Squirrel连接Mysql)
下载Squirrel SQL Client,解压缩就可以了。运行squirrel-sql.bat就出现了图形界面。

这肯定要说怎样连Phoenix?
①在Squirrel安装目录的lib下,添加几个jar包

a,phoenix-core-xxx.jar
b,phoenix-3.0-client.jar
c,hbase-0.94.18.jar
d,hadoop1.0.4.jar
e,hadoop-common-xxx.jar

hbase客户端编程 hbase客户端工具_jar


需要点击“Drivers”,将phoenix的驱动添加进去。③点击左上角 蓝色的 “ + ” 加号,添加

hbase客户端编程 hbase客户端工具_hbase客户端编程_02


按上面的顺序,依次填写。第一步Name:随便写个名字,标记连接;第二步Example URL:相当于mysql的jdbc连接串,这里的alias写zookeeper的主机名称,端口号,可以写,可以不写,我一般不写;第三步选择Phoenix-core的jar包;第四步就是手动输入org.apache.phoenix.jdbc.PhoenixDriver。

然后点击OK,如下图:

hbase客户端编程 hbase客户端工具_hbase客户端编程_03


Name自己起一个,url为:jdbc:phoenix:z1,z2,z3:2181

Class Name:org.apache.phoenix.jdbc.PhoenixDriver

④配置连接

hbase客户端编程 hbase客户端工具_jar_04


Name:为随便起的名称。

Driver:选中③中添加的phoenix驱动。

URL:写如上内容,jdbc:phoenix:node1,node2,master等这里主要是zookeeper主机名。

User Name:要连接的主机的用户名

Password:要连接的主机的密码

点击Test可以进行测试,或点OK连接。

连接完毕,启动后,就可以看到如下的效果了。这里我已经创建了几个表了,这些表都是存在于HBase上的。

(比如:起一个名字如phoenix-110.97,driver选刚创建的hbasePhoenix,name和password自己起,如root/root
注:网上有说是机器密码,但我操作的时候就写了root/root,也不是机器密码一样可以)

双击刚创建好的连接,可以看到phoenix的表和索引了:

hbase客户端编程 hbase客户端工具_hbase客户端编程_05

  1. 操作

选中sql标签,即可执行sql:

hbase客户端编程 hbase客户端工具_sql_06