前言简介
Apache Phoenix通过结合两个世界最好的方式,在Hadoop中实现了低延迟应用的OLTP和操作分析:
-
具有完整ACID事务功能的标准SQL和JDBC API的强大功能
-
通过利用HBase作为其后备商店,NoSQL世界的后期限制读取模式的灵活性
Apache Phoenix与其他Hadoop产品完全集成,如Spark,Hive,Pig,Flume和Map Reduce。
phoneix 经常出的错误:org.apache.hadoop.hbase.TableNotFoundException: SYSTEM.CATALOG exception with phoenix
解决方案:在spark1(主机) 的hbase的bin目录下执行: hbase clean --cleanZk (暂时还没搞明白为啥报的错,可能因为phoenix在写入hbase的system.catlog 的时候,因为zk的原因导致写入失败 ,就导致phoenix链接不上hbase。)
一、配置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原来的 配置文件。
切换到phoenix 的bin目录下,修改psql.py和sqlline.py的权限为777
命令:chmod 777 文件名
在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
Example:jdbc:phoenix:192.168.57.4,192.168.57.5,192.168.57.6:2181(这里是你的phonenix的jdbc地址,注意端口也可以不写,多个用逗号隔开)
Class Name:org.apache.phoenix.jdbc.PhoenixDriver
2.连接phonenix
点击Aiiasses,点击右边的添加图标
出现以下窗口
这里还是名字随意写,driver要选择刚才配置的可用的driver,我们刚才配置的是phonenix
url这里就是连接phonex的url选择了phonenix的driver以后自动出现也可以改,user name就是phonenix连接的主机的用户名,密码就是该机器的密码,点击自动登录
然后点击test,显示连接成功即可(在这里最好不要直接点OK,先点Test,连接成功了再OK)
注意:这里可能链接不上,原因是C:\Windows\System32\drivers\etc下面的hosts文件没有配置路由表,所有要配置一下,如下图
双击创建的连接即可