基于hadoop MR+berkeley DB实现的十亿级数据的秒级部署和实时查询的解决方案
2016-08-24 16:06
856 查看
要解决的问题
1、有10亿级别的某视频网的注册用户和设备用户,需要T+1天的任意uid或是设备id对应的用户画像数据。2、分为计算周期+布署服务化+查询三部分,计算用时优化余地有限,
而查询又是主动发起,主要在布署服务化阶段用时优化,希望能在5-10分钟内搞定布署服务化。
解决方法
1、 离线数据mr计算的时候通过hash funciion修改partition key,均匀划分至额定的文件中去。2、 将第一轮的输出文件集合,每个文件对应berlelydb的一个数据库(同表一样)
3、 将2的输出bdb的数据库集合,拷贝至本地。
4、 将3的输出,通过bdb进程初始化操作,加入2级索引,
一级索引是端,二级索引是bdb库(此时用到到1中的相同的hash function)
5、 将4的输出,外搭restful service,支持网络查询。再通过zookeeper通讯,解决单点问题。
6、 外部实时通过的restful service输出来达到实时搜索的效果。
效果展示
单台高配机:128G+24核加载bdb数据文件700GB,记录条数:10.3亿条,初始化用120s
QPS为200-1000时,响应平均时长为:10ms至1000ms
后续计划
下一步将输出的bdp数据库集合,分散到不同的机器节点中去做负载均衡一下,请求控制器端加入过滤器负责将请求路由到查询机器节点中,达到10亿级实时查询请求的响应平均时长控制在0-200ms之间,最长响应不超过300ms的目标。更多学习讨论, 请加入官方QQ技术群320349384,
官方天亮论坛:http://bbs.yuqing36524.com/
天亮教育视频链接:http://pan.baidu.com/s/1pJJrcqJ
相关文章推荐
- 基于HBase的海量数据实时查询系统设计与实现
- 一脸懵逼学习HBase---基于HDFS实现的。(Hadoop的数据库,分布式的,大数据量的,随机的,实时的,非关系型数据库)
- sybase DBArtisan 7中文查询数据乱码解决方案
- 利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
- Sqoop实现HADOOP与DB数据互导
- 基于rsync+inotify实现数据实时同步传输
- Android实战简易教程<二十五>(基于Baas的数据表查询下拉刷新和上拉加载实现!)
- 基于rsync+inotify实现数据实时同步传输
- sersync:基于 rsync + inotify 实现数据实时同步
- 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析
- 基于Hadoop数据仓库Hive1.2部署及使用
- 基于HTML5 Bootstrap搭建的后台模板,分页,模糊查询已经全部JS实现,无需编码,嵌入数据即可开发,内置8款皮肤,欧美风格,非常好用!
- DTCC 2013:基于SQL Server的大数据解决方案设计及实现
- 基于随机游走的社团划分算法hadoop MR实现
- 利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
- 利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
- 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析视频教程
- Hadoop第7周练习—MapReduce进行数据查询和实现推简单荐系统
- sersync:基于 rsync + inotify 实现数据实时同步
- JQuery实现基于Ajax的数据查询、排序和分页功能