dbeaver连接amabri-hbase

目录

尝试过程

解决之道

总结

尝试过程

注意此章节为记录试错过程,无需跟随操作,仅作试错记录。真正操作方法请看“解决之道”章节

环境ambari安装的hbase2.1.6

使用apche phoenix默认驱动配置

备注:Apache Phoenix 是一个开源的、基于 SQL 的查询引擎,它使得可以在 Apache HBase(分布式 NoSQL 数据库)上使用标准的 SQL 查询语言。Phoenix 提供了对 HBase 的 SQL 接口,使得用户可以使用熟悉的 SQL 语法来查询和操作 HBase 中的数据。

在hbase配置文件中找到ZooKeeper Znode Parent参数的值

并在编辑驱动中添加:

添加驱动属性

测试连接

出现:

Insufficient permissions to create SYSTEM namespace and SYSTEM Tables 

权限不足,无法创建 SYSTEM 命名空间和 SYSTEM空间下的 表

手动登录hbase创建SYSTEM,并授予hbase用户权限

 测试连接

ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.CATALOG

又出现没有SYSTEM.CATALOG表,此时怀疑是否需要提前在服务器上安装apache phoenix?

按照HBase 整合Phoenix_hbase2.0.2集成phoenix_十二同学啊的博客-CSDN博客

方法在ambari-hadoop1节点安装完后,执行 

[linux@node1 phoenix]$ bin/sqlline.py  ambari-hadoop1:2181

命令时出现Caused by: org.apache.hadoop.hbase.TableNotFoundException: SYSTEM.CATALOG的错误

解决方案:重新清理hbase,如果可以的话(建议先备份,系统快照)

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

2  /bin/hbase clean --cleanAll

注意:hbase clean --cleanAll是清楚hbase clean --cleanALL是清除所有数据慎用

3 然后重新启动hbase

4 [root@hdp1 /mnt/software/phoenix-4.10.0-cdh5.12.0/bin]#python ./sqlline.py ambari-hadoop1:2181

成功

dbeaver配置:

注意服务器ambari-hbase上 也需要配置以下两个属性的值:

测试连接 

ERROR 2007 (INT09): Outdated jars. Newer Phoenix clients can't communicate with older Phoenix servers. The following servers require an updated phoenix-[version]-server.jar to be put in the classpath of HBase: region=SYSTEM.CATALOG,,1701162392278.2179ae0a2eac521be10539173a8f47be., hostname=ambari-hadoop2,16020,1701163111938, seqNum=16

额,dbeaver和服务器端Phoenix使用的jar包不一致,更换驱动之前在ambari-hadoop1节点上安装的phoenix目录下的 client jar包,测试连接后dbeaver一直connecting main,最后超时报错KeeperErrorCode = ConnectionLoss for /hbase-unsecure

 但是zk服务正常、hbase服务也正常,通过zkCli.sh也能查看/hbase-unsecure下的内容,所有虚拟机节点的防火墙也处于关闭状态,百思不得其解

解决之道

        这时无意中看见在hbase组件页面有一个叫做“phoenix query servers”的服务

点进去查看发现这个服务进程是在ambari-hadoop2节点上,于是去到ambari-hadoop2节点的/usr/hdp/3.1.5.0-152路径下ll查看一下,果然发现有一个名叫“phoenix”的目录,进去该目录发现 

有一个client jar包

于是马上下载到本机,并修改dbeaver apache phoenix驱动配置,将驱动替换为此jar包并成功找到类

 剩余驱动配置如下

测试连接成功!成功解决

 

解决成功后展开表出现权限问题:

org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user ‘18389',action: scannerOpen, tableName:SYSTEM:CATALOG, family:0, column: TYPE_NAME

解决思路:为‘18389’用户赋予在SYSTEM:CATALOG表上的读写权限 

解决方法:利用ranger创建一个名为‘18389’的用户,并赋予其在hbase上的权限

再次展开表后,没有权限问题但是一片空白,并且 dbeaver上创建表后仍然不可见

并且其他的namspace不可见,其余表也不可见

 将之前设置的phoenix.schema.isNamespaceMappingEnabled值改为false(

phoenix.schema.isNamespaceMappingEnabled 是 Apache Phoenix 中的一个配置属性,用于启用或禁用 Phoenix 对 HBase 命名空间的支持。当该属性被启用时,Phoenix 将使用 HBase 的命名空间来组织表。在启用命名空间映射后,Phoenix 表名将包括命名空间前缀。

例如,假设 phoenix.schema.isNamespaceMappingEnabled 被设置为 true,如果你在命名空间 "Test" 中创建了表 "MyTable",则 Phoenix 中的表名将是 "Test.MyTable"。

如果禁用了命名空间映射,那么 Phoenix 将使用默认的 HBase 表。在这种情况下,Phoenix 表名就是 HBase 表名,不包括命名空间前缀。

设置默认数据库为空值 

再次断开重连,可以看见default命名空间下的表和其他命名空间下的表,并且执行后可以看见新建的表

总结

        当利用dbeaver 连接ambari部署的hbase时,由于已经自带了phoenix query servers服务,所以需要将phoenix query servers服务所在节点目录下的client jar驱动包,下载到本地,并编辑驱动配置指定该jar包。避免使用其他jar包以免出现驱动的问题,并且需要注意在URL后面添加ZooKeeper Znode Parent 的后缀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/202786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Amazon CodeWhisperer 使用体验

文章作者:STRIVE Amazon CodeWhisperer 是最新的代码生成工具,支持多种编程语言,如 java,js,Python 等,能减少开发人员手敲代码时间,提升工作效率。PS:本人是一名 CodeWhisperer 业余爱好者 亚马逊云科技开发者社区为开…

文件中找TopK问题

目录 1.解题思路2.创建一个文件并在文件中写入数据3.为什么要建立小堆而不建立大堆?4.如何在现有的数据中建立适合的大堆?5.代码实现 1.解题思路 TopK问题即是在众多数据中找出前K大的值,则可以根据堆的性质来实现,但在使用堆之前…

R语言gWQS包在加权分位数和回归模型的应用

在流行病学研究中,相较于单一因素的暴露,多因素同时暴露的情况更为常见。传统模型在评价多因素联合暴露时存在数据维度高、多重共线性等问题. WQS 回归模型的基本原理是通过分位数间距及加权的方法,将多种研究因素的效应综合成为一个指数&…

华为云cce负载配置时间同步

华为云cce将负载配置好之后,发现里面的时间与真实时间不同步,差了12小时,怎么办? 这时候就需要配置时间同步了。 华为云cce里面通过配置数据存储的路径来解决这个问题的,配置后,需要重启负载。 新建负载…

python实验3 石头剪刀布游戏

实验3:石头剪刀布游戏 一、实验目的二、知识要点图三、实验1. 石头剪刀布2. 实现大侠个人信息 一、实验目的 了解3类基本组合数据类型。理解列表概念并掌握Python中列表的使用。理解字典概念并掌握Python中字典的使用。运用jieba库进行中文分词并进行文本词频统计。…

JSON.stringify方法详解 后端接受JSON数据格式

1、方法定义:JSON.stringify(value, replacer, space) 参数说明: value:js对象 replacer:替换对象,可以是一个方法、对象或数组,将value按照替换规则展示。 space:填充参数,可以是数…

Protocol handler start failed

背景 上一次启动项目还好好的,关闭项目重新打开时,报错了! 报错提示 英文:Protocol handler start failed 翻译:协议处理程序启动失败 原因 端口被其他程用了,导致端口冲突。 解决方案 打开任务管理…

深入理解Java中的String、StringBuilder和StringBuffer(每天一个技术点,第一天)

大家好,我是你们的博主每天一个技术点。今天,我们将探讨Java中的一个重要主题:String、StringBuilder和StringBuffer。这些类在Java编程中无处不在,但它们之间的区别和用法可能并不是所有人都清楚。所以,让我们深入了解…

10分钟的时间,带你彻底搞懂JavaScript数据类型转换

前言 📫 大家好,我是南木元元,热衷分享有趣实用的文章,希望大家多多支持,一起进步! 🍅 个人主页:南木元元 目录 JS数据类型 3种转换类型 ToBoolean ToString ToNumber 对象转原…

Flutter加固原理及加密处理

​ 引言 为了保护Flutter应用免受潜在的漏洞和攻击威胁,加固是必不可少的措施之一。Flutter加固原理主要包括代码混淆、数据加密、安全存储、反调试与反分析、动态加载和安全通信等多个方面。通过综合运用这些措施,可以提高Flutter应用的安全性&#xf…

【UE】热成像效果

效果 步骤 1. 新建一个空白项目,勾选“光线追踪”选项 2. 添加一个第一人称游戏内容包到项目 3. 打开第一人称角色蓝图“BP_FirstPersonCharacter”,添加一个后期处理组件 在事件图表中设置通过按键N来切换不同的后期处理效果 将后期处理设置引脚提升为…

golang—kafka架构原理快速入门以及自测环境搭建(docker单节点部署)

kafka Apache Kafka 是一个分布式的流处理平台。它具有以下特点: 支持消息的发布和订阅,类似于 RabbtMQ、ActiveMQ 等消息队列支持数据实时处理能保证消息的可靠性投递支持消息的持久化存储,并通过多副本分布式的存储方案来保证消息的容错高…

SaaS模式C/S检验科LIS系统源码

适用于医院检验科实际需要的管理系统, 实现检验业务全流程的计算机管理。从检验申请、标本编号、联机采集、中文报告单的生成与打印、质控图的绘制和数据的检索与备份。通过将所有仪器自身提供的端口与科室LIS系统中的工作站点连接,实现与医院HIS系统的对接。 通过门诊医生和住…

TEMU和SHEIN平台的卖家了解测评吗?

最近越来越多的商家都入驻了temu和shein平台,为了让自己的产品能更具有优势,就会用到测评来做一些产品销量和评论,那么测评应该怎么做呢? 测评就是卖家通过测评平台,社区,红人等等这些联系国外的买家&…

el-select多选框,数据拼接

将多选框数据 按照逗号拼接为字符串 getTagIds(data, type) {if (type "array") {let array data.join(",")return array} else {let string data.split(",");return string}}, 在调用这个方法时需要,另外传一个字符串type,以此来…

面试篇之微服务(一)

目录 概览 1.什么是微服务? 2.微服务带来了哪些挑战? 3.现在有哪些流行的微服务解决方案? 这三种方案有什么区别吗? 4.说下微服务有哪些组件? 注册中心 5.注册中心是用来干什么的? 6.SpringCloud可…

Embassy 库下载代码示例

解决方案: swift import Embassy let downloader Downloader() // 使用代理主机和端口 downloader.useProxy(proxyHost: ") // 下载 URL 的内容 let content downloader.download(from: "") // 输出下载的内容 print(content) 这个程序首先…

Spring Cloud Stream如何屏蔽不同MQ带来的差异性?

引言 在当前的微服务架构下,使用消息队列(MQ)技术是实现服务解耦和削峰填谷的重要策略。为了保证系统的灵活性和可替换性,我们需要避免对单一开源技术的依赖。 市面上有多种消息队列技术,如 Kafka、RocketMQ、Rabbit…

从零构建属于自己的GPT系列1:文本数据预处理、文本数据tokenizer、逐行代码解读

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1:文本数据预处理 从零构建属于自己的GPT系列2:语…

【精选】Spring整合MyBatis,Junit 及Spring 事务Spring AOP面向切面详解

Spring整合MyBatis 搭建环境 我们知道使用MyBatis时需要写大量创建SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession等对象的代码,而Spring的作用是帮助我们创建和管理对象,所以我们可以使用Spring整合MyBatis,简化MyBatis开发。 …