Phoenix的安装及JDBC访问
来源:互联网 发布:淘宝天猫优惠券好做吗 编辑:程序博客网 时间:2024/06/05 17:25
1.下载并安装
访问https://github.com/apache/phoenix/releases
各版本的命名格式为<phoenix版本>-HBase-<对应的HBase版本>
下载完成后使用tar -zxvf解压并进入到安装目录,执行bin/sqlline [参数为zookeeper集群地址,注意地址后不要写端口号]
如果输出:
Setting property: [isolation, TRANSACTION_READ_COMMITTED]issuing: !connect jdbc:phoenix:XXXXX(zookeeper集群地址) none none org.apache.phoenix.jdbc.PhoenixDriverConnecting to jdbc:XXXXX(zookeeper集群地址)17/10/17 16:20:06 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableConnected to: Phoenix (version 4.6)Driver: PhoenixEmbeddedDriver (version 4.6)Autocommit status: trueTransaction isolation: TRANSACTION_READ_COMMITTEDBuilding list of tables and columns for tab-completion (set fastconnect to true to skip)...105/105 (100%) DoneDonesqlline version 1.1.8
然后执行!table命令出现系统自带的四个初始表,即代表安装成功。
2.SQL命令
举一个建表并插入数据的样例:
# 这里需要注意的是Phoenix的表名是大小写敏感的,而且会自动将表名和列名转为大写,如果希望使用小写的表名和列名需要使用双引号将名称括起来0: jdbc:phoenix:hb-bp1dn7ld2e77alr5g-004.hbas> create table if not exists "mytable"(ROW varchar primary key,"id" integer,"name" varchar);No rows affected (2.428 seconds)# 插入一条数据,由于HBase的特性,所以Phoenix中没有insert和update,需要使用upsert来插入或更新行0: jdbc:phoenix:hb-bp1dn7ld2e77alr5g-004.hbas> upsert into "mytable" (ROW,"id","name") values ('rowkey1',1,'lixiang');1 row affected (0.164 seconds)0: jdbc:phoenix:hb-bp1dn7ld2e77alr5g-004.hbas> select * from "mytable";
出现这个结果代表我们已经成功的建表并插入了一条数据
3.对HBase中已有的表进行映射
如果在HBase中直接建表,Phoenix是不会自动映射的,需要我们手动建立映射,方法很简单,在sqlline中建立一个新的表,表名和表结构与HBase中的原始表一样就可以了
比如我们在HBase中有一个原始表叫mytable,列族为family,family中有两列id和name
# 这里注意,建表时的列名要使用"列族名"."列名"和HBase中对应,且别忘了小写的名称用双引号括起来0: jdbc:phoenix:hb-bp1dn7ld2e77alr5g-004.hbas> create table if not exists "table" (ROW varchar primary key,"family"."id" integer,"family"."name" varchar);1 row affected (7.46 seconds)0: jdbc:phoenix:hb-bp1dn7ld2e77alr5g-004.hbas> select * from "table";
出现这个结果代表已经映射成功
4.JDBC访问
如果使用的是Maven来管理项目,在pom文件中集成Phoenix依赖
<dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>4.6.0-HBase-1.1</version></dependency>
我这里使用的是Phoenix对应HBase1.1版本的4.6.0版本
然后写一个测试方法:
@Testpublic void testPhoenixJDBC() throws SQLException, ClassNotFoundException { try { Class.forName("org.apache.phoenix.jdbc.PhoenixDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Statement stat = null; ResultSet rs = null; // xxxx为zookeeper集群节点的地址 Connection conn = DriverManager.getConnection( "jdbc:phoenix:xxxx.com,xxxx.com,xxxx.com:2181"); stat = conn.createStatement(); String sql = "select \"cf1\".\"mycolumn\" from \"mytable\""; rs = stat.executeQuery(sql); while (rs.next()) { System.out.println("name:"+rs.getString("mycolumn")); } stat.close(); conn.close(); }}
运行后会看到有一行name:lixiang
的输出,代表访问成功!
这是我的第一篇文章,分享技术的同时也加深了自己对相关技术的理解。如果文章中有疏漏或错误,欢迎大家指正!
阅读全文
2 0
- Phoenix的安装及JDBC访问
- 通过JDBC访问phoenix
- 使用Phoenix的JDBC接口
- phoenix的安装配置
- Phoenix简介及安装部署使用
- apache phoenix的JAVA客户端访问
- 最简单的Phoenix 访问 HBase例子
- Phoenix安装
- Phoenix安装
- phoenix-jdbc-pom
- Phoenix jdbc 插入数据
- Phoenix Jdbc 连接HBase
- Hadoop2.7.0学习——phoenix-4.8.0和squirrel的安装及使用
- Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成
- phoenix的安装与简单测试
- Django 的安装及访问
- db2的jdbc驱动安装及例子
- oralce的jdbc驱动安装及例子
- 【工具类】常用操作Excel
- struts2+hibernate+spring
- 期盼中求出起点到终点的最小步数
- mInflater.inflate(R.layout.item_express, null); 高度失效
- [Travel]湖南长沙适合一日游的项目
- Phoenix的安装及JDBC访问
- opencv中SiftDescriptorExtractor所做的SIFT特征向量提取工作简单分析
- 编译open infrastructure platform
- Oracle报错,ORA-28001: 口令已经失效解决方法
- 数据结构实验之串三:KMP应用
- html之自定义插件升级版
- 读取本地数据库,和Couldn't read row 1, col -1 from CursorWindow. Make sure the Cursor报错
- Maven settings
- Git bash常用命令