Phoenix链接hbase尝试

Phoenix是一个构建在HBase上的SQL层,允许使用标准JDBC APIs进行数据操作,而非HBase客户端APIs。它通过将SQL查询转换为HBase扫描并执行,提供毫秒级的查询速度。本文详细介绍Phoenix的安装配置过程及常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是Phonenix?

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。
Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。
Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好:

将SQL编译成原生的HBase scans。
确定scan关键字的最佳开始和结束
让scan并行执行
 

基本准备条件:

hbase 版本1.2.6,对应的phoenix版本为4.14.1

下载apache-phoenix-4.14.1-HBase-1.2-bin,解压后可得到

接着就是将

拷贝到hbase的lib目录下;

然后将hbase是hbase-site.xml拷贝到phoenix下的bin目录下;

启动zookeeper

启动Hadoop

启动hbase

然后进入到Phoenix的bin目录下;

输入 ./sqlline.py master:2181(zookeeper的主节点)

接着可以看到一些语句;

(1)失败情况下

apache phoenix Table 'SYSTEM.CATALOG' was not found

这种情况下可以采取

  • hbase zkcli 查看 /hbase/table 下面有没有SYSTEM.CATALOG
  • hbase hbck -repair
  • hbase zkcli 再次查看 /hbase/table 下面有没有SYSTEM.CATALOG

 

方法2:/bin/ hbase zkcli  (此种方法可行)

   ls /hbase/table

  如果有下面的表:SYSTEM.CATALOG, SYSTEM.SEQUENCE, SYSTEM.STATS, and SYSTEM.FUNCTION,则执行如下命令

  rmr /hbase/table/SYSTEM.CATALOG

  rmr /hbase/table/SYSTEM.SEQUENCE

  rmr /hbase/table/SYSTEM.STATS

  rmr /hbase/table/SYSTEM.FUNCTION

  方法3:/bin/hbase clean --cleanAll

   在执行上述命令之前:先关闭hbase(包括HMaster和regionServer)

3.重新启动hbase

4.通过 ./sqlline.py 进入phoenix,系统会自动创建Phoenix的系统表

 

 

 

参考文档:

https://blog.youkuaiyun.com/kongxx/article/details/87996363

https://blog.youkuaiyun.com/qq_33187206/article/details/80824414

https://blog.youkuaiyun.com/daerzei/article/details/80356394

为了确保DataGrip能够成功连接至CDH环境下的Apache Phoenix,并且namespace mapping配置正确,你需要遵循以下详细步骤: 参考资源链接:[DataGrip连接Phoenix全攻略:HBase设置与驱动添加详解](https://wenku.youkuaiyun.com/doc/4rb9tsahvb?spm=1055.2569.3001.10343) 1. **检查HBasePhoenix的安装与配置** - 确保HBasePhoenix已经在集群上安装,并且配置了相关的属性`phoenix.schema.isNamespaceMappingEnabled`和`phoenix.schema.mapSystemTablesToNamespace`以启用namespace mapping并正确映射系统表。 2. **下载Phoenix客户端jar包** - 根据你所使用的CDH版本,在安装包的对应路径(例如`/opt/cloudera/parcels/PHOENIX/lib/phoenix`)中找到Phoenix客户端jar包。 3. **将客户端jar包添加到DataGrip** - 将下载的jar包复制到DataGrip识别的JDBC驱动位置,如`drivers`文件夹下。 4. **配置DataGrip数据源** - 打开DataGrip,创建新的数据源,选择Phoenix作为数据库类型。在配置窗口中,填写数据库URL(包括主机名、端口号和数据库名称),并指定之前复制的Phoenix驱动路径。 5. **进行连接测试** - 保存数据源配置并尝试连接。如果配置正确,你应该能够通过DataGrip对HBase中的数据执行SQL查询,验证namespace mapping是否按照预期工作。 6. **处理可能出现的问题** - 如果遇到连接问题,请检查HBase服务状态和Zookeeper配置是否正确。确保HBase集群可以被Phoenix客户端访问,并且在DataGrip中配置的驱动程序与你的CDH版本兼容。 通过以上步骤,你可以在DataGrip中成功配置连接至CDH环境下的Apache Phoenix,并确保namespace mapping正确设置,以管理HBase中的数据。建议深入学习更多关于PhoenixHBase集成的知识,可以参考《DataGrip连接Phoenix全攻略:HBase设置与驱动添加详解》来进一步提升你的技能和效率。 参考资源链接:[DataGrip连接Phoenix全攻略:HBase设置与驱动添加详解](https://wenku.youkuaiyun.com/doc/4rb9tsahvb?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值