立即注册 登录
About云-梭伦科技 返回首页

fanbells的个人空间 https://www.aboutyun.com/?3979 [收藏] [复制] [分享] [RSS]

日志

使用sql操作hbase的工具-phoenix

已有 1821 次阅读2014-3-24 14:19 |个人分类:hbase| phoenix、hbase

习惯了通过sql操作关系数据库,突然改成操作nosql数据库,会发现有很多不方便。虽然hbase提供了api,但日常操作不可能都去现写程序。下面介绍一个可以通过sql规范操作hbase表的开源项目-phoenix,现在该项目已经转到了apache下。(项目地址:http://phoenix.incubator.apache.org/)
下面介绍一下安装方式:
1、从路径https://github.com/forcedotcom/phoenix/wiki/Download下载最新版本的tar包。(个人感觉每个版本之间相差很大,我所知道的phoenix-2.0.x-install.tar和phoenix-2.2.x相差就很多)
2、解压下载的tar包,将phoenix-x.x.x.jar包分别复制到集群hbase安装目录的lib目录下,只需要复制这一个包就可以了。
3、重启hbase集群。
4、打开http://ip:60010/master-status页面,会发现多了一张SYSTEM.TABLE的表,如果没有,可能是反应慢,可以稍等一会。
现在就可以通过jdbc的方式访问hbase了,访问时需要把步骤2中解压的phoenix-x.x.x-client.jar包添加到项目中。
访问代码参考:
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.PreparedStatement; 
import java.sql.Statement; 
public class test { 
public static void main(String[] argsthrows SQLException { 
Statement stmt = null
ResultSet rset = null
Connection con = DriverManager.getConnection("jdbc:phoenix:[zookeeper]"); 
stmt = con.createStatement(); 
stmt.executeUpdate("create table test (mykey integer not null primary key, mycolumn varchar)"); 
stmt.executeUpdate("upsert into test values (1,'Hello')"); 
stmt.executeUpdate("upsert into test values (2,'World!')"); 
con.commit(); 
PreparedStatement statement = con.prepareStatement("select * from test"); 
  rset = statement.executeQuery(); 
  while (rset.next()) { 
 System.out.println(rset.getString("mycolumn")); 
statement.close(); 
con.close(); 
  
}
也可以通过路径http://phoenix.incubator.apache.org/faq.html来获取上面的代码。
附:1、现支持的sql语法:http://phoenix.incubator.apache.org/language/index.html
2、shell命令介绍
在步骤2的解压目录下,打开bin目录,会发现有一个sqlline.sh文件,执行命令:./sqlline.sh localhost(也可以是集群的其他ip)以后就可以使用sql命令进行操作了。

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条