快乐学习
前程无忧、中华英才非你莫属!

HBase 的JDBC查询引擎:phoenix(凤凰)

前言简介

Apache Phoenix通过结合两个世界最好的方式,在Hadoop中实现了低延迟应用的OLTP和操作分析:

  • 具有完整ACID事务功能的标准SQL和JDBC API的强大功能

  • 通过利用HBase作为其后备商店,NoSQL世界的后期限制读取模式的灵活性

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

谁在使用Apache Phoenix?在这里阅读更多

phoneix 经常出的错误:org.apache.hadoop.hbase.TableNotFoundException: SYSTEM.CATALOG exception with phoenix 

解决方案:在spark1(主机) 的hbase的bin目录下执行:  hbase clean –cleanZk  (暂时还没搞明白为啥报的错,可能因为phoenix在写入hbase的system.catlog 的时候,因为zk的原因导致写入失败 ,就导致phoenix链接不上hbase。)

http://stackoverflow.com/questions/33176081/org-apache-hadoop-hbase-tablenotfoundexception-system-catalog-exception-with-ph


一、配置Phoenix

1.1、将phoenix-4.7.0-HBase-0.98-bin/目录下phoenix-core-4.7.0.jar、phoenix-4.7.0-client.jar拷贝到各个 hbase的lib目录下。

1.2、重启hbase集群,使Phoenix的jar包生效。

1.3、将hbase的配置文件hbase-site.xml 放到phoenix-4.3.0-bin/bin/下,替换Phoenix原来的 配置文件。

1.4、修改权限

切换到phoenix 的bin目录下,修改psql.py和sqlline.py的权限为777

命令:chmod 777 文件名

1.5、验证是否成功

  在phoenix/bin/下输入命令: ./sqlline.py localhost

1.6、  建表语句:STOCK_SYMBOL

./psql.py localhost  ../examples/STOCK_SYMBOL.sql

1.7、 导入数据:STOCK_SYMBOL.csv

./psql.py -t  STOCK_SYMBOL  localhost  ../examples/STOCK_SYMBOL.csv

1.8 、建表语句:WEB_STAT

./psql.py localhost  ../examples/WEB_STAT.sql

1.9 、导入数据:WEB_STAT.csv

./psql.py -t WEB_STAT localhost ../examples/WEB_STAT.csv

1.10 、连接终端(在phoneix安装目录的bin目录下)

 ./sqlline.py localhost

1.11、执行查询语句

select * from web_stat;

1.12、

Hbase也是支持JDBC的(加入hadoop2.6、hbase0.98 和phoenix-4.7.0-HBase-0.98-bin 的相关jar包)。

Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");

} catch (Exception e) {

e.printStackTrace();

}

//这里配置zookeeper的地址,可单个,也可多个。可以是域名或者ip

String url = "jdbc:phoenix:spark1,spark2,spark3";

Connection conn = DriverManager.getConnection(url);

Statement statement = conn.createStatement();

String sql = "select count(1) as num from web_stat";

long time = System.currentTimeMillis();

ResultSet rs = statement.executeQuery(sql);

while (rs.next()) {

int count = rs.getInt("num");

System.out.println("row count is " + count);

}

long timeUsed = System.currentTimeMillis() - time;

System.out.println("time " + timeUsed + "mm");

//关闭连接

rs.close();

statement.close();

conn.close();

【转载】Phoenix安装与使用文档   :http://xn--jlq582ax31c.xn--fiqs8s/post/27


二、配置Phoenix的可视化客户端

【转载】Phoenix的可视化客户端安装(squirrel):http://www.cnblogs.com/raphael5200/p/5260198.html

1.配置squirrel

  解压的phoenix-4.5.2-HBase-1.1-bin.tar.gz包的主目录下将如下几个jar包拷贝到squirrel安装目录的lib,例如本机路径是D:\soft\squirrel-sql-3.7\lib

   

  在安装目录下双击squirrel-sql.bat

  点击左侧的Drivers,添加图标

   

  在出现的窗口中填写如下项

    Name:就是个名字任意取就可以,这里我叫phoenix

    Examplejdbc:phoenix:192.168.57.4,192.168.57.5,192.168.57.6:2181(这里是你的phonenixjdbc地址,注意端口也可以不写,多个用逗号隔开)

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

     

2.连接phonenix

  点击Aiiasses,点击右边的添加图标

   

  出现以下窗口

   

  这里还是名字随意写,driver要选择刚才配置的可用的driver,我们刚才配置的是phonenix

  url这里就是连接phonexurl选择了phonenixdriver以后自动出现也可以改,user name就是phonenix连接的主机的用户名,密码就是该机器的密码,点击自动登录

   

  然后点击test,显示连接成功即可(在这里最好不要直接点OK,先点Test,连接成功了再OK

  

  注意:这里可能链接不上,原因是C:\Windows\System32\drivers\etc下面的hosts文件没有配置路由表,所有要配置一下,如下图

   

  双击创建的连接即可

   

 

打赏

未经允许不得转载:同乐学堂 » HBase 的JDBC查询引擎:phoenix(凤凰)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

特别的技术,给特别的你!

联系QQ:1071235258QQ群:226134712
error: Sorry,暂时内容不可复制!