CDH Phoenix映射HBase_1

目录

1.前提环境

2.视图映射操作步骤


1.前提环境

  1. CDH环境搭建完毕
  2. APACHE PHOENIX集成完毕
  3. 可以通过phoenix连接到HBase数据库

2.视图映射操作步骤

  • phoenix要映射HBase表,尤其是携带“命名空间”的HBase表(命名空间可以理解为数据库),在CDH中需要进行HBase配置“命名空间开启”
    <property>
        <name>phoenix.schema.isNamespaceMappingEnabled</name>
        <value>true</value>
    </property>
    <property>
        <name>phoenix.schema.mapSystemTablesToNamespace</name>
        <value>true</value>
    </property>
  • 我们打开CDH中的HBase模块的配置,在配置中分别找到hbase-site.xml的服务端和客户端配置代码块,并分别添加上述配置代码
  • 配置完毕之后,重启HBase服务使其生效(注意:我自己搭建的测试用集群存在一些问题,导致agent时断时续,导致parcels时激活时未激活,这种情况下,使用滚动重启“方式经常会导致命令超时,所以推荐始终”重启“命令)
  • 重启完成后,使用命令操作phoenix连接zk(注意:phoenix中的默认单词都是大写格式,如果要定义为小写名称,请使用双引号引起来,如下,我们创建小写名称的schema:test)
    #/opt/cloudera/parcels/APACHE_PHOENIX/bin/phoenix-sqlline.py cm:2181
    ...
    ...
    ...
    >create schema "test";
    >use "test";
  • 成功连接后,我们创建映射视图(表需先已存在hbase中且该如果使用rowkey则需要定义为primary key,所有字段需用引号引起来,列还需要带上列簇信息,否则均会报错出现Table Is Readonly的错误,可以理解为这个错误实际是你创建的视图和源表无法匹配)
    >create view "test"."aaa"(
    >"pk" varchar primary key,
    >"info"."name" varchar,
    >"info"."age" varchar);
  • 这里需要说明下phoenix的命名空间是以“.”来表示的,而HBase是以“:”来表示的需要注意一下,HBase那边别写错了 
  • 创建成功后,使用!table及select * from "test"."aaa"查看即可
  • 如上,不存在的字段会自动为null
  • 删除视图并不会影响HBase原表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值