大数据技术 通过phoenix在hbase上创建二级索引
沉沙 2018-10-11 来源 : 阅读 2553 评论 0

摘要:本篇教程探讨了大数据技术 通过phoenix在hbase上创建二级索引,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术 通过phoenix在hbase上创建二级索引,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

环境描述:

操作系统版本:CentOS release 6.5 (Final)
内核版本:2.6.32-431.el6.x86_64
phoenix版本:phoenix-4.10.0
hbase版本:hbase-1.2.6
hbase节点分布:1个HMaster,2个RegionServer

文档目的:
通过在phoenix客户端连接hbase数据库,在phoenix中创建二级索引。
配置过程:
1.登录到RegionSever节点,修改hbase-site.xml配置文件,加入如下配置

         phoenix.query.maxServerCacheBytes
         2097152000


  hbase.regionserver.wal.codec
  org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec


  hbase.region.server.rpc.scheduler.factory.class
  org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory
  Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates


  hbase.rpc.controllerfactory.class
  org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory
  Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates

备注:要在所有的RegionServer节点进行添加,HMaster节点的hbase-site.xml配置文件不需要进行修改。
2.修改之后,重新启动hbase服务
进入hbase-1.2.6目录:
bin/stop-hbase.sh
bin/start-hbase.sh
3.通过jps检查各个hbase节点进程无异常
4.通过phoenix连接hbase,然后创建二级索引
 创建表测试表:
CREATE TABLE IF NOT EXISTS WEB_STAT (
     HOST CHAR(2) NOT NULL,
     DOMAIN VARCHAR NOT NULL,
     FEATURE VARCHAR NOT NULL,
     DATE DATE NOT NULL,
     USAGE.CORE BIGINT,
     USAGE.DB BIGINT,
     STATS.ACTIVE_VISITOR INTEGER
     CONSTRAINT PK PRIMARY KEY (HOST, DOMAIN, FEATURE, DATE)
);
创建二级索引:
CREATE INDEX IDX_01 ON WEB_STAT(HOST);
删除二级索引:
DROP INDEX IDX_01 ON WEB_STAT
备注:如果以上创建索引没有报错,说明以上的基本配置是没有问题的。
如果不配置以上参数,会报下面的错误:
0: jdbc:phoenix:redhat6> create index my_index on example (M.C0);
Error: ERROR 1029 (42Y88): Mutable secondary indexes must have the hbase.regionserver.wal.codec property set to org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the hbase-sites.xml of every region server. tableName=MY_INDEX (state=42Y88,code=1029)
java.sql.SQLException: ERROR 1029 (42Y88): Mutable secondary indexes must have the hbase.regionserver.wal.codec property set to org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the hbase-sites.xml of every region server. tableName=MY_INDEX
         at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:488)
         at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
         at org.apache.phoenix.schema.MetaDataClient.createIndex(MetaDataClient.java:1456)
         at org.apache.phoenix.compile.CreateIndexCompiler$1.execute(CreateIndexCompiler.java:85)
         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:394)
         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:377)
         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:375)
         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:364)
         at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1738)
         at sqlline.Commands.execute(Commands.java:822)
         at sqlline.Commands.sql(Commands.java:732)
         at sqlline.SqlLine.dispatch(SqlLine.java:813)
         at sqlline.SqlLine.begin(SqlLine.java:686)
         at sqlline.SqlLine.start(SqlLine.java:398)
         at sqlline.SqlLine.main(SqlLine.java:291)    

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程