开发基于 Hbase的 应用 链接 Hbase 服务器 demo

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介:   一个网站的数据的增加是非常迅速的。。   要保存这些数据 在 mysql 数据库里面 是最好的办法。   如果这些数据 超过了一定的规模。比如 上 亿的历史数据。。查询起来可就比较麻烦了。。   而且如果要进行 统计分析。。分析用户的行为啥的。。还需要这些日志。   就连 用户的访问记录保留也是很有用的。。就像豆瓣的喜欢和垃圾桶功能也很重要。   通过这个就可以推算出

 

一个网站的数据的增加是非常迅速的。。

 

要保存这些数据 在 mysql 数据库里面 是最好的办法。

 

如果这些数据 超过了一定的规模。比如 上 亿的历史数据。。查询起来可就比较麻烦了。。

 

而且如果要进行 统计分析。。分析用户的行为啥的。。还需要这些日志。

 

就连 用户的访问记录保留也是很有用的。。就像豆瓣的喜欢和垃圾桶功能也很重要。

 

通过这个就可以推算出你喜欢哪首歌曲。

 

别的就不废话了。相信你对大数据存储也很头疼。

 

下面介绍使用的技术。

首先你要有一个 hadoop的环境。

 

要使用 64bit的centos 6 使用 cloudera 的hadoop 和hbase 通过 yum 一并安装了。

 

具体安装配置 已经是很简化的了。。最简单的了。。

 

http://toeo.iteye.com/blog/1243592

 

然后你需要知道 我们 链接 hbase 就像链接 jpa 一样的。有这样的框架。

 

总之吧 hbase 的字段 都映射成 POJO 是很好的事情。

 

 

使用 datanucleus 进行封装对象:

 

地址:http://www.datanucleus.org/

 


 

如果要是可以把程序调通。写 hbase 程序就像和 写 JPA的程序一样了。

 

开始创建工程:

从官网下载一个 demo

 

http://sourceforge.net/projects/datanucleus/files/datanucleus-samples/

 

DataNucleus 最新版本是 3.0.4 

 

同时DataNucleus 还支持其他 云数据的链接。比如 Google的 bigTable 。

 

大名鼎鼎的 google Appengine 也是使用 DataNucleus 中间件链接的。

 

所以不用怀疑可靠性。

 

首要要解决的就是jar包的依赖问题。

 

demo 里面居然把hbase 的groupId 写错了

 

应该是:

 

 

<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.90.4</version>
</dependency>
 

 

修修改改jar 总是是对了。。然后就是漫长的jar包下载。

 

 

要使用 datanucleus 必须安装 eclipse 插件:

 

因为需要在编译的时候 自动  enhanced 当然你也可以 手动 enhanced 比较麻烦

 

安装 eclipse 插件:

 

http://www.datanucleus.org/downloads/eclipse-update/

 


安装成功重启


 



 

启用 enhanced 在 build 的时候 就可以看到 enhanced  的过程了。。

 


enhanced 2 个 class。

 

如果不安装 则代码 运行不了:

报错:

 

 

Persisting Account+Login
Exception in thread "main" org.datanucleus.api.jdo.exceptions.ClassNotPersistenceCapableException: The class "org.datanucleus.samples.jdo.hbase.Account" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found.
	at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:351)
	at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:745)
	at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:765)
	at org.datanucleus.samples.jdo.hbase.Main.main(Main.java:46)
NestedThrowablesStackTrace:
The class "org.datanucleus.samples.jdo.hbase.Account" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found.
org.datanucleus.exceptions.ClassNotPersistableException: The class "org.datanucleus.samples.jdo.hbase.Account" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found.
	at org.datanucleus.ObjectManagerImpl.assertClassPersistable(ObjectManagerImpl.java:5330)
	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1704)
	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1512)
	at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:740)
	at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:765)
	at org.datanucleus.samples.jdo.hbase.Main.main(Main.java:46)
 

 

 

确认 hbase 已经启动:zookeeper 已经启动:

 

否则会报链接错误:

 

 

11/12/23 16:36:15 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.SocketException: Address family not supported by protocol family: connect
	at sun.nio.ch.Net.connect(Native Method)
	at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
	at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1050)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1077)
11/12/23 16:36:15 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181
11/12/23 16:36:16 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused: no further information
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	
 

 

编译的时候添加 :

 

 

<dependency>
			<groupId>org.datanucleus</groupId>
			<artifactId>datanucleus-enhancer</artifactId>
			<version>3.0.1</version>
		</dependency>
 

 

 

否则会报找不到 jar:

 

 

java.lang.NoClassDefFoundError: org/datanucleus/enhancer/DataNucleusEnhancer  

 

 

查看zookeeper 启动:

 


 

附件代码:暂时没有跑通。因为hbase 安装在虚拟机上面

以后陆续补上。也可能是hbase 没有配置对。

 

 

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力
优化SSR应用以减少服务器压力,可采用代码分割、缓存策略、数据预加载、服务端性能优化、使用CDN、SSR与SSG结合、限制并发请求、SSR与CSR平滑切换、优化前端资源及利用框架特性等策略。这些方法能有效提升性能和稳定性,同时保证用户体验。
|
3月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
100 2
|
2月前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
29天前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
33 2
|
2月前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
3月前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力?
如何优化 SSR 应用以减少服务器压力?
|
3月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
3月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
1100 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
3月前
|
机器学习/深度学习 人工智能 边缘计算
高算力服务器的应用场景
【10月更文挑战第18天】高算力服务器作为现代信息社会不可或缺的计算资源,正广泛应用于各行各业。从人工智能到科学研究,从智能交通到数字孪生,它为复杂的计算任务提供了不可替代的支持。
56 0