已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
phoenix部署使用文档1 版本说明该文档说明中使用的各软件版本说明如下:Hadoop:2.7.0Hbase:1.0.1.1Phoenix:4.4.0-HBase-1.0squirrel-sql:3.5.32 服务器端设置第1步:上传phoenix软件到服务器将phoenix-4.4.0-HBase-1.0-bin.tar.gz上传到hadoop集群主节点;第2步:将文件解压到目录/home/hadoop/phoenix;第3步:将解压后lib下的phoenix-core-4.4.0-HBase-1.0.jar文件拷贝到各hbase节点的lib目录;第4步:重启hbase环境;第5步:主节点执行以下命令进入phoenix的shell环境,/home/hadoop/phoenix/bin/sqlline.py namenode:2181如果出现以上内容表示配置成功。3 客户端使用使用Squirrel作为客户端,与phoenix结合具体使用如下:第1步:下载Squirrel客户端软件到本地,将以下jar文件拷贝到Squirrel目录下的lib目录,这些jar文件在hbase客户端相关jar包目录。第2步:windows环境点击Squirrel目录下的squirrel-sql.bat文件启动客户端,启动后进入的页面如下第3步:点击Drivers页面的+进入客户端驱动添加页面,如下图所示其中各输入项解释如下:Name:随便写个名字;Example URL:相当于mysql的jdbc连接串,phoenix的格式为 jdbc:phoenix: zookeeper集群地址,需要注意,这里的zookeeper地址需要配置成域名的方式,并且需要有对应的dns域名映射,例如:192.168.6.71 namenode192.168.6.72 datanode1192.168.6.73 datanode2192.168.6.74 datanode3如果没有域名服务映射,可以在本地的hosts文件中配置映射关系。 Java Class Path:选择Phoenix-core的jar包;Class Name:手动输入org.apache.phoenix.jdbc.PhoenixDriver;点击Ok确定驱动器设置。第4步:点击Aliases页面的+进入连接设置页面,如下图所示其中各输入项解释如下:Name:随便写个名字;Driver:选中第3步添加的phoenix驱动;URL:写如上内容,jdbc:phoenix:namenode,datanode1,datanode2,datanode3等这里主要是zookeeper主机名;User Name:要连接的主机的用户名;Password:要连接的主机的密码;点击Test可以进行测试,或点OK连接。连接完毕,启动后,就可以看到如下的效果了。图中红色标注区域解释如下:1:用squirrel建立的一些连接2:当前连接下,所有对象,包括主见系统表,普通表,视图。3:为表,这些表都是实际存在于zookeeper所管理的HBase上的。右键此表,可以对表进行管理。4:为视图。5:编写sql脚本的地方,可以输入脚本执行。脚本执行方式,在5上面有一个小人,选中sql,点击小人就可以执行了。或者按ctrl + enter键,执行。6:为选中的对象的一些基本信息,列信息,行数等。7:为sql执行的一些状态。4 Phoenix使用示例以下示例在shell环境使用,也可以在squirrel客户端工具使用。4.1 新建表新建一张Person表,含有IDCardNum,Name,Age三个字段 ,test为table_schem,标准sql如下:create table IF NOT EXISTS test.Person (IDCardNum INTEGER not null primary key, Name varchar(20),Age INTEGER);在 Phoenix 中使用如下:0: jdbc:phoenix:10.35.66.72 create table IF NOT EXISTS test.Person (IDCardNum INTEGER not null primary key, Name varchar(20),Age INTEGER);No rows affected (0.344 seconds)0: jdbc:phoenix:10.35.66.72 !tables+-+-+-+-+| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TA |+-+-+-+-+| null | WL | BIG_LOG_DEVUTRACEID_INDEX | INDEX | null | WL | MSGCENTER_PUSHMESSAGE_V2_OWNERPAGE_INDEX | INDEX | null | SYSTEM | CATALOG | SYSTEM TABLE | null | SYSTEM | SEQUENCE | SYSTEM TABLE | null | SYSTEM | STATS | SYSTEM TABLE | null | DMO | SOWNTOWN_STATICS | TABLE | null | OL | BIGLOG | TABLE | null | TEST | PERSON | TABLE | null | WL | BIG_LOG | TABLE | null | WL | ERROR_LOG | TABLE | null | WL | MSGCENTER_PUSHMESSAGE | TABLE | null | WL | MSGCENTER_PUSHMESSAGE_V2 | TABLE |+-+-+-+-+0: jdbc:phoenix:10.35.66.72 select * from TEST.PERSON;+-+-+-+| IDCARDNUM | NAME | AGE |+-+-+-+-+-+-+可以看到,hbase中已经存在数据表Person了,包含了三列 4.2 插入数据对表进行插入操作,sql如下:insert into Person (IDCardNum,Name,Age) values (100,小明,12);insert into Person (IDCardNum,Name,Age) values (101,小红,15);insert into Person (IDCardNum,Name,Age) values (103,小王,22);在 Phoenix 中插入的语句为upsert,具体如下:0: jdbc:phoenix:10.35.66.72 upsert into test.Person (IDCardNum,Name,Age) values (100,小明,12);1 row affected (0.043 seconds)0: jdbc:phoenix:10.35.66.72 upsert into test.Person (IDCardNum,Name,Age) values (101,小红,15);1 row affected (0.018 seconds)0: jdbc:phoenix:10.35.66.72 upsert into test.Person (IDCardNum,Name,Age) values (103,小王,22);1 row affected (0.009 seconds)0: jdbc:phoenix:10.35.66.72 select * from test.Person;+-+-+-+| IDCARDNUM | NAME | AGE |+-+-+-+| 100 | 小明 | 12 | 101 | 小红 | 15 | 103 | 小王 | 22 |+-+-+-+3 rows selected (0.115 seconds)从上面可以看到,三条数据已经进入hbase里面了;好了,现在要对表添加一列sex性别操作,怎么办?4.3 修改表alter 修改表数据,sql如下:ALTER TABLE test.Persion ADD sex varchar(10);Phoenix 中操作如下:0: jdbc:phoenix:10.35.66.72 ALTER TABLE test.Person ADD sex varchar(10);No rows affected (0.191 seconds): jdbc:phoenix:10.35.66.72 select * from test.person;+-+-+-+-+| IDCARDNUM | NAME | AGE | SEX |+-+-+-+-+| 100 | 小明 | 12 | null | 101 | 小红 | 15 | null | 103 | 小王 | 22 | null |+-+-+-+-+3 rows selected (0.113 seconds)上图看到已经新增了列sex,每行的默认值为null,那么怎么样修改这些值呢?4.4 更新表数据更新表数据 ,标准的sql 如下:update test.Person set sex=男 where IDCardNum=100;update test.Person set sex=女 where IDCardNum=101;update test.Person set sex=男 where IDCardNum=103;Phoenix中不存在update的语法关键字,而是upsert,功能上替代了Insert+update,官方说明为:UPSERT VALUESInserts if not present and updates otherwise the value in the table. The list of columns is optional and if not present, the values will map to the column in the order they are declared in the schema. The values must evaluate to constants.根据介绍,只需要在upsert语句中制定存在的idcardnum即可实现更新,在 Phoenix 客户端中操作如下:0: jdbc:phoenix:10.35.66.72 upsert into test.person (idcardnum,sex) values (100,男);1 row affected (0.083 seconds)0: jdbc:phoenix:10.35.66.72 upsert into test.person (idcardnum,sex) values (101,女);1 row affected (0.012 seconds)0: jdbc:phoenix:10.35.66.72 upsert into test.person (idcardnum,sex) values (103,男);1 row affected (0.008 seconds)0: jdbc:phoenix:10.35.66.72 select * from test.person;+-+-+-+-+| IDCARDNUM | NAME | AGE | SEX |+-+-+-+-+| 100 | 小明 | 12 | 男 | 101 | 小红 | 15 | 女 | 103 | 小王 | 22 | 男 |+-+-+-+-+3 rows selected (0.087 seconds)4.5 复杂查询复杂查询,通过Phoenix可以支持 where、group by、case when 等复杂的查询条件,案例如下:# 现增加几条数据0: jdbc:phoenix:10.35.66.72 upsert into test.Person (IDCardNum,Name,Age,sex) values (104,小张,23,男);1 row affected (0.012 seconds)0: jdbc:phoenix:10.35.66.72 upsert into test.Person (IDCardNum,Name,Age,sex) values (105,小李,28,男);1 row affected (0.015 seconds)0: jdbc:phoenix:10.35.66.72 upsert into test.Person (IDCardNum,Name,Age,sex) values (106,小李,33,男);1 row affected (0.011 seconds)0: jdbc:phoenix:10.35.66.72 select * from test.person;+-+-+-+-+| IDCARDNUM | NAME | AGE | SEX |+-+-+-+-+| 100 | 小明 | 12 | 男 | 101 | 小红 | 15 | 女 | 103 | 小王 | 22 | 男 | 104 | 小张 | 23 | 男 | 105 | 小李 | 28 | 男 | 106 | 小李 | 33 | 男 |+-+-+-+-+6 rows selected (0.09 seconds)where + group by 语句例子:jdbc:phoenix:10.35.66.72 select sex ,count(sex) as num from test.person where age 20 group by sex;+-+-+| SEX | NUM |+-+-+| 男 | 4 |+-+-+case when 的例子:0: jdbc:phoenix:10.35.66.72 select (case name when 小明 then 明明啊 when 小红 then 红红啊 else name end) as showname from test.person;+-+| SHOWNAME |+-+| 明明啊 | 红红啊 | 小王 | 小张 | 小李 | 小李 |+-+4.6 删除数据及删除表删除数据及删除表,标准sql如下:delete from test.Person where idcardnum=100;drop table test.person;Phoenix中同标准sql一样,案例如下:0: jdbc:phoenix:10.35.66.72 delete from test.Person where idcardnum=100;1 row affected (0.072 seconds)0: jdbc:phoenix:10.35.66.72 select * from test.Person where idcardnum=100;+-+-+-+-+| IDCARDNUM | NAME | AGE | SEX |+-+-+-+-+-+-+-+-+0: jdbc:phoenix:10.35.66.72 drop table test.person;No rows affected (1.799 seconds)0: jdbc:phoenix:10.35.66.72 select * from test.person;Error: ERROR 1012 (42M03): Table undefined. tableName=TEST.PERSON (state=42M03,code=1012)0: jdbc:phoenix:10.35.66.72 !tables+-+-+-+-+| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TA |+-+-+-+-+| null | WL | BIG_LOG_DEVUTRACEID_INDEX | INDEX | null | WL | MSGCENTER_PUSHMESSAGE_V2_OWNERPAGE_INDEX | INDEX | null | SYSTEM | CATALOG | SYSTEM TABLE | null | SYSTEM | SEQUENCE | SYSTEM TABLE | null | SYSTEM | STATS | SYSTEM TABLE | null | DMO | SO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江杭州市萧山区第一人民医院招聘3人笔试模拟试题及答案详解
- 2026西咸新区渭城卫生院招聘笔试参考题库及答案详解
- 2026重庆北碚区公开遴选教师11人笔试模拟试题及答案详解
- 2026年中德住房储蓄银行校园招聘考试参考试题及答案详解
- 2026江苏无锡市江阴市峭岐中学代课教师招聘笔试模拟试题及答案详解
- 2026四川爱联科技股份有限公司招聘成本会计岗位1人笔试参考题库及答案详解
- 线上线下融合债券融资合同
- 2026重庆北碚区遴选教师11人笔试参考题库及答案详解
- 2026江苏南京江北新区教育局所属事业单位招聘骨干教师39人笔试备考题库及答案详解
- 武宁城投集团招聘笔试模拟试题及答案详解
- 《安全血液和血液制品》学习笔记二类
- 中国酱油行业发展现状调查、竞争格局分析及未来前景预测报告
- 土钉支护技术规程
- T-CSAE 88-2018 小型电化学储能电站消防安全技术要求
- 便携式“四合一”气体检测仪使用方法
- 孕前和孕期保健指南版
- 胸腔闭式引流护理-中华护理学会团体标准
- 依恋三部曲:依恋、分离、丧失(套装全3册)
- 安徽省康宁新材料科技有限公司年产15800吨橡塑助剂及副产800吨苯甲酸、100吨2,4-二氯苯甲酸、5600吨氯化钠生产装置建设项目环境影响报告书
- GB 19079.4-2014体育场所开放条件与技术要求第4部分:攀岩场所
- 融合终端MQTT上行app使用说明
评论
0/150
提交评论