本章主要讲解大数据下如何做数据分片,所谓分片,即将大量数据分散在不同的节点,同时每个存储节点还要做副本备份. 而一般的抽象分片方法是, 先将数据映射到一个分片空间,这是多对一的关系,即一个数据分片区间可能有多条数据 再将分片空间映射到物理node,这也是多对一的关系,即一个物理node对应多个分片空间 具体到实现,通过hash进行分片是比较常见方式,而常见的hash方法是: round robin,hash取模,即通过取模将数据分散到各个node,这种方法跳过了分片空间,数据直接映射到了物理no…
基本上是hash实用的各种举例 布隆过滤器 Bloom Filter 常用来检测某个原色是否是巨量数据集合中的成员,优势是节省空间,不会有漏判(已经存在的数据肯定能够查找到),缺点是有误判(不存在的数据可能也会被找到). 应用场景有,chrome进行恶意的url判断,爬虫判断爬取过的url,缓存使用BF进行海量数据查找,比特币使用BF对历史交易进行验证. 基本思想是,首先有个位数组,长度为m,将数据a通过n个hash函数进行计算,每个hash得到的结果x 在[1,m]区间,将x作为一个索引,索引…
前一段时间, 一个老师建议我能够学学 '大数据' 和 '机器学习', 他说这必定是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有非常深的认识, 总觉得它们是那么的缥缈, 高不可攀, 也没想着深入学习. 之后, 一次偶然的机会, 在csdn官方博客上看到了这种一个活动 [置顶] 话题讨论&征文--谈论大数据时我们在谈什么 于是, 从下载试读样章, 到正式读书, 開始了学习大数据的过程... 到今天, 差点儿相同两周过去了, 马马虎虎过了一遍, 感触颇多. 以下简单评…
机器学习算法特点:迭代运算 损失函数最小化训练过程中,在巨大参数空间中迭代寻找最优解 比如:主题模型.回归.矩阵分解.SVM.深度学习 分布式机器学习的挑战: - 网络通信效率 - 不同节点执行速度不同:加快慢任务 - 容错性 机器学习简介: 数据并行vs模型并行: 数据并行 模型并行 分布式机器学习范型: 其他情形 MPI:容错性差.集群规模小.扩展性低 GPU:目前处理规模中等(6-10GB) 1. 同步范型(严格情形每轮迭代进行数据同步) 快等慢,计算资源浪费:网络通信多 eg:MapRe…
目前主流大数据存储使用横向扩展(scale out)而非传统数据库纵向扩展(scale up)的方式.因此涉及数据分片.数据路由(routing).数据一致性问题 二级映射关系:key-partition映射,partition-machine映射 首先找到partition(比如hash),然后找machine(路由routing) hash分片方式1:Round Robin 新增一台机器: 需要重新分配数据归属,灵活性差 hash分片方式2:虚拟桶(virtual buckets) hash…
CAP理论:Consistency,Availability,Partition tolerance 对于一个分布式数据系统,CAP三要素不可兼得,至多实现其二.要么AP,要么CP,不存在CAP.分布式系统往往要求必须满足P. 传统关系数据库选择CA,NoSQL更关注AP. CAP Reloaded: 关系数据库ACID原则:Atomicity,Consistency,Isolation,Durability:更强调数据一致性 NoSQL系统BASE原则:Basically Available,…
计算广告:逻辑回归 千次展示收益eCPM(Effective Cost Per Mille) eCPM= CTR * BidPrice 优化算法 训练数据使用:在线学习(online learning).批学习(batch learning).mini-batch学习 数据量往往千万到几亿,模型参数达到10~100亿 . 并行随机梯度下降(Parallel Stochastic Gradient Descent): 批学习并行逻辑回归: 重点在计算梯度. step1 算内积 step2 按行聚合…
MapReduce: 计算模型: 实例1:单词统计 实例2:链接反转 实例3:页面点击统计 系统架构: 在Map阶段还可以执行可选的Combiner操作,类似于Reduce,但是在Mapper side局部执行. Hadoop的MapReduce和Google的很像,只是Hadoop采用HTTPS传输数据,采用归并排序(merge-sort)对中介结果Key排序. MapReduce的特点及不足 优点:可扩展性(数千台机器)/高吞吐,细粒度容错性,编程简单 舍弃的特性:无高层抽象数据操作语言,数…
布隆过滤器(bloom filter,BF): 二进制向量数据结构,时空效率很好,尤其是空间效率极高.作用:检测某个元素在某个巨量集合中存在. 构造: 查询: 不会发生漏判(false negative),但误判(false positive)存在,因此BF适合允许少量误判的场景. 计数布隆过滤器(counting bloom filter,CBF): BF基础上支持删除元素操作.数组每个位置1bit扩展为n bits. 另外需要考虑计数溢出问题. BF应用: Chrome浏览器判断恶意url:…
原文: http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html 对leveldb非常好的一篇学习总结文章 郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的话可以一起讨论 Level…