Hadoop第13周练习—

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-%”的复合行健,并结合时间戳。

时间: 2024-10-11 11:29:34

Hadoop第13周练习—的相关文章

13周

13周依旧过得很快,因为数据结构里有讲最小生成树的算法,因此也就跟着老师的节奏去学习这方面的知识.最小生成树目前接触到两种方法,一种是Prim 算法,一种是Kruskal算法.目前只学习了前者,相关题目还没有做,准备下周写一些.另外,下个周末有近代史和英语四级的考试,可能下周会着重复习这 些.感觉自己还是把握不住时间,高数和大物一些本来一个小时就能完成的作业硬是会拖了两个小时,反而占用了学习其他东西的时间,做其他事情也是有拖沓的感 觉,效率太差.这个方面我以后会注意,不然真的什么事情都做不好了.

13周 项目1 点,圆的关系

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double a,double b):x(a),y(b) {} double getx() { return x; } double gety() { return y; } friend ostream&operator << (ostream&,Point&); prote

学习进度条十二(第13周)

  第13周 所花时间 30h 代码量 420行 博客量 3篇 了解到的知识点 1.利用txt文件解决登录界面记住密码的问题. 2.利用javaFX实现内嵌浏览器,不过有几个bug未解决. 3.了解了java中Runnable线程问题,不同的线程处理会导致程序的执行顺序不同. 4.解决程序运行后关闭窗口还占用内存的问题,利用窗口关闭的监听事件,在窗口关闭时销毁内存.

20145239 《信息安全系统设计基础》第13周学习总结

20145239 <信息安全系统设计基础>第13周学习总结 本周代码实践 hello_multi.c 先打印world换行打印hello,间隔1秒再打印相同内容,一共打印5次,最后输出t1,t2 finished hello_multi1.c hello_single.c 打印一个hello,之后每间隔1秒打印一 个hello,共5个:然后打印一个world并换行,之后每间隔1秒打印一个world,共5个 incprint.c 在屏幕上换行输出count=1,2,3,4,5,间隔1秒 twor

13周 项目2 圆的比较

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double a,double b):x(a),y(b) {} double getx() { return x; } double gety() { return y; } friend ostream&operator << (ostream&,Point&); prote

2017-2018-1 20155314 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155314 <信息安全系统设计基础>第13周学习总结 学习目标 找出全书你认为最重要的一章,深入重新学习一下,要求(期末占10分): 完成这一章所有习题 详细总结本章要点 给你的结对学习搭档讲解你的总结并获取反馈 第6章学习要点: 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 理解局部性原理 理解缓存思想 理解局部性原理和缓存思想在存储层次结构中的应用 高速缓存的原理和应用 本章要点详细总结 第6章 存储器层次结构 6.1 存储技术 6.1.1 随机访问

2017-2018-1 20155332 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155332 <信息安全系统设计基础>第13周学习总结 学习目标 找出全书你认为最重要的一章,深入重新学习一下,要求(期末占10分): 完成这一章所有习题 详细总结本章要点 给你的结对学习搭档讲解你的总结并获取反馈 本章知识点总结 我们需要理解基本的客户端-服务端编程模型,以及如何编写使用因特网提供的服务的客户端-服务端程序. 最后,我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web服务器,能够为真实的Web浏览器提供静态的和动态的文本和图形内容. 11.

2017-2018-1 20155305 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155305 <信息安全系统设计基础>第13周学习总结 学习目标 找出全书你认为最重要的一章,深入重新学习一下,要求(期末占10分): 完成这一章所有习题 详细总结本章要点 给你的结对学习搭档讲解你的总结并获取反馈 课后习题 10.1 运行练习题10.1时,一开始运行结果是fd=-1,不是应该出现的正确结果fd=3 解决方法:之前学习课本open函数时,如果返回值是-1的话说明打开出错,只有打开成功,返回值为新文件描述符(返回的描述符总是在进程中当前没有打开的最小描

20155236 《信息安全系统设计基础》第13周学习总结

20155236 <信息安全系统设计基础>第13周学习总结 网络编程 套接字接口概述: 并发编程 并发:逻辑控制流在时间上重叠 并发程序:使用应用级并发的应用程序称为并发程序. 三种基本的构造并发程序的方法: 进程,用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制. I/O多路复用,应用程序在一个进程的上下文中显式的调度控制流.逻辑流被模型化为状态机. 线程,运行在一个单一进程上下文中的逻辑流.由内核进行调度,共享同一个虚拟地址空间. 基于进程的并发编程 构造并发程序最简单的方法