博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop第13周练习—HBase作业
阅读量:5008 次
发布时间:2019-06-12

本文共 1157 字,大约阅读时间需要 3 分钟。

1    书面作业1:举例子说明HBase相对简单... 3

1.1     书面作业题目1. 3

1.2     回答... 3

2    书面作业2:设计HBase存储站内短信... 3

2.1     书面作业题目2. 3

2.2     回答... 3

 

1书面作业1:举例子说明HBase相对简单

1.1  书面作业题目1

请举出一例子,使用关系型数据库较难进行数据建模,而采用HBase则相对简单

1.2  回答

HBase的应用场景

l  存储大量的数据(100s TB级数据)

l  需要很高的写吞吐量

l  在大规模数据集中进行很好性能的随机访问(按列)

l  需要进行优雅的数据扩展

l  结构化和半结构化的数据

l  不需要全部的关系数据库特性,例如交叉列、交叉表、事务、连接等等

相关例子

l  淘宝的交易历史记录。数据量巨大无容置疑,面向普通用户的请求需即时响应;捕获增量数据、网络爬虫、广告效果和点击流等等。

l  动态扩展系统容量,例如:webPage DB

2书面作业2:设计HBase存储站内短信

2.1  书面作业题目2

HBase存储社交网站站内短信信息,要求记录发送者、接受者、时间、内容,有关的查询是发送者可以列出他所有(或按时间段)发出的信息列表(按时间降序排列),接收者可以列出他所有(或按时间段)收到的信息列表(按时间降序排列)。请进行数据建模。

2.2  回答

两种方法:

方法一:建两个表,发送者表,接收者表

1:发送者表:

行键:发送者id

列族和列:接收者,短信内容,时间戳(系统自动生成)

2:接收者表:

行键:接收者id

列族和列:发送者,短信内容,时间戳(系统自动生成)

 

1)查询是发送者可以列出他所有(或按时间段)发出的信息列表,通过在发送者表查询。

2)查询是接收者可以列出他所有(或按时间段)收到的信息列表(按时间降序排列),通过接受者表查询,结合时间戳。

 

方法二:建一个表,使用复合行键

通过使用标识、发送者id、接收者id做成复合行健,其中:标识用来区分发送还是接收,标识0为发送,标识1为接收,

l  当标识为0是,表示发送,复合行健为:标识-发送者id-接收者id

l  当标识为1是,表示接收,复合行健为:标识-接收者id- 发送者id

这样设计的目的是方便使用hbase的范围查询功能,列族和列:短信内容,时间戳(系统自动生成)

1)查询是发送者可以列出他所有(或按时间段)发出的信息列表,通过使用范围查询,查询“0-发送者id-%”的复合行健。

2)查询是接收者可以列出他所有(或按时间段)收到的信息列表(按时间降序排列),查询“1-接收者id-%”的复合行健,并结合时间戳。

 

转载于:https://www.cnblogs.com/shishanyuan/p/4227528.html

你可能感兴趣的文章
【刷题】洛谷 P3806【模板】点分治1
查看>>
使用ffmpeg步骤
查看>>
RabbitMQ inequivalent arg 'durable' for exchange 'csExchange' in vhost '/': received
查看>>
《2017中国云计算评测报告》
查看>>
有木有兄弟在研究HTML5和css3啊?进来唠叨一下,分享一下你的资源
查看>>
Hibernate 中一对多和多对多映射
查看>>
EL表达式_详解
查看>>
Mybatis 数据库物理分页插件 PageHelper
查看>>
虚函数、纯虚函数详解
查看>>
z-stack中数据的发送,广播、组播、点对点
查看>>
Practial Vim 学习笔记一
查看>>
.NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
查看>>
ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP入门)
查看>>
关于二维码“QR”的6大注意事项
查看>>
MySQL - 常用命令及常用查询SQL
查看>>
C# .NET MVC 接收 JSON ,POST,WCF 无缝隙切换
查看>>
android获取USB设备的名称
查看>>
JavaPersistenceWithHibernate第二版笔记-第七章-005排序的集合(@org.hibernate.annotations.SortComparator)...
查看>>
ue4同c#通信时的中文乱码问题
查看>>
黄老师架构师课程笔记(二)
查看>>