docker容器下部署hbase并在springboot中通过jdbc连接

我在windows的docker中部署了一个hbase服务,然后用springboot连接到此服务并访问数据。

详情可参考项目中的README.md。项目中提供了用于构建镜像的dockerfile,以及测试代码。

项目连接:

https://gitee.com/forgot940629/hbase_phoenix_springboot

https://gitee.com/forgot940629/hbase_phoenix_mybatis_springboot.git (这个项目在原有基础上集成了mybatis)

吐槽几句。下面吐槽可以不看

我要写一个访问hbase的程序,需要开发环境中有一套带有phoenix的hbase。最开始的想法是找镜像,我觉得我的这个需求还是挺常见的。但是没想到这个镜像这么难找。

最开始我用的是harisekhon/hbase这个镜像,但是这个镜像没有phoenix,需要自己安装。然后我参考b站视频安装phoenix(英语太差,没看懂phoenix的官网教程)。视频教程很好,但是我发现harisekhon/hbase这个镜像里好像没安装hadoop,这点与视频教程不符。。。东找西看,到最后下面的报错让我放弃了这个镜像。

上图是运行phoenix的sqlline.py的报错,当时我以为是因为没hadoop才没法用,现在回想,应该是hbase-site.xml没配置phoenix.schema.isNamespaceMappingEnabled

然后我又尝试新的镜像,经过多番尝试,找到boostport/hbase-phoenix-all-in-one。这个镜像中号称集成了phoenix,但实际运行起来没法用,问题和上面截图的差不多。但这次我脑子好像突然干活了,把这个问题正常解决了。

上面说的是容器方面的坑,其实容器方面还有很多坑我这里就不细说了,反正直接用我上面给的代码就不会有这些坑。之后编写代码的时候也遇到很多坑,其中有个比较离谱。phoenix-core这个包下依赖的不同版本的hadoop-auth,包冲突。。。。
服不服气?

总结下来这次这个东西折腾了一下午,除了因为某些知识掌握的不扎实(比如包冲突的排查,比如springboot中对datasource的配置),还有个原因时折腾到后面脑子开始罢工了,否则我也不会抛弃harisekhon/hbase这个镜像去折腾其他镜像,我觉得harisekhon/hbase还是可以成功部署phoenix。还有个次要原因,针对我这个需求的官方文档几乎没有。之前搭建elk日志平台时几乎用的都是官方文档,但这次不论是前期容器搭建还是后面的代码编写都没有在官网找到任何介绍,全靠自己在网上找资料或者问chatgpt。chatgpt这次表现也不好,很多问题回答的驴唇不对马嘴,我希望chatgpt和百度AI之后也反思下。

相关推荐
weixin_985432119 分钟前
Spring Boot 中的 @ConditionalOnBean 注解详解
java·spring boot·后端
hackchen43 分钟前
NexusTerminal一款视频移动端的webSSH
docker·云原生·eureka·web-ssh
一只爱撸猫的程序猿2 小时前
创建一个基于Spring AI的智能旅行简单案例
spring boot·程序员·aigc
IT_10243 小时前
springboot从零入门之接口测试!
java·开发语言·spring boot·后端·spring·lua
陌殇殇4 小时前
Hadoop 002 — HDFS常用命令及SpringBoot整合操作
hadoop·spring boot·hdfs
迢迢星万里灬5 小时前
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术点解析
java·spring boot·spring·mybatis·spring mvc·面试指南
weixin_446122465 小时前
浏览器播放监控画面
java·spring boot
开开心心就好6 小时前
高效账号信息管理工具,可安全随机生成密码
javascript·安全·docker·智能手机·pdf·word·excel
西洼工作室6 小时前
Spring Boot常用依赖大全:从入门到精通
java·spring boot·后端
递归尽头是星辰7 小时前
SpringBoot深度解析:从核心原理到最佳实践
spring boot·事务传播机制·自动配置原理·springboot启动流程·starter设计