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

简介:   一个网站的数据的增加是非常迅速的。。   要保存这些数据 在 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 没有配置对。

 

 

目录
相关文章
|
7月前
|
机器学习/深度学习 数据库 数据安全/隐私保护
服务器核心组件:CPU 与 GPU 的核心区别、应用场景、协同工作
CPU与GPU在服务器中各司其职:CPU擅长处理复杂逻辑,如订单判断、网页请求;GPU专注批量并行计算,如图像处理、深度学习。二者协同工作,能大幅提升服务器效率,满足多样化计算需求。
2847 39
|
6月前
|
存储 机器学习/深度学习 人工智能
硅谷GPU单节点服务器:技术解析与应用全景
“硅谷GPU单节点服务器”代表了在单个物理机箱内集成强大计算能力,特别是GPU加速能力的高性能计算解决方案。它们并非指代某个特定品牌,而是一类为处理密集型工作负载而设计的服务器范式的统称。
|
6月前
|
机器学习/深度学习 人工智能 弹性计算
2025年阿里云GPU服务器租用价格与应用场景详解
阿里云GPU服务器基于ECS架构,集成NVIDIA A10/V100等顶级GPU与自研神龙架构,提供高达1000 TFLOPS混合精度算力。2025年推出万卡级异构算力平台及Aegaeon池化技术,支持AI训练、推理、科学计算与图形渲染,实现性能与成本最优平衡。
|
8月前
|
域名解析 运维 监控
阿里云轻量服务器的系统镜像和应用镜像的区别
轻量应用服务器是阿里云推出的易用型云服务器,支持一键部署、域名解析、安全管理和运维监控。本文介绍其系统镜像与应用镜像的区别及选择建议,助您根据业务需求和技术能力快速决策,实现高效部署。
|
8月前
|
存储 弹性计算 运维
阿里云服务器全解析:ECS是什么、应用场景、租用流程及优缺点分析
阿里云ECS(Elastic Compute Service)是阿里云提供的高性能、高可用的云计算服务,支持弹性扩展、多样化实例类型和多种计费模式。适用于网站搭建、数据处理、运维测试等多种场景,具备分钟级交付、安全可靠、成本低、易运维等优势,是企业及开发者上云的理想选择。
1032 5
|
8月前
|
运维 监控 Kubernetes
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代
Bitnami 曾为开源应用部署带来革命性体验,但随着 Docker 成熟与战略转向云原生,其单机多应用支持逐渐弱化。面对多应用管理分散、资源冲突、运维工具缺失等痛点,Websoft9 应运而生,提供一键部署、统一管理、智能调度等能力,全面优化单服务器多应用运维体验,成为 Bitnami 的理想继任者。
287 0
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代
|
6月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
476 10
|
6月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
6月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
628 8

热门文章

最新文章