前一段时间, 一个老师建议我能够学学 '大数据' 和 '机器学习', 他说这必定是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有非常深的认识, 总觉得它们是那么的缥缈, 高不可攀, 也没想着深入学习. 之后, 一次偶然的机会, 在csdn官方博客上看到了这种一个活动 [置顶] 话题讨论&征文--谈论大数据时我们在谈什么 于是, 从下载试读样章, 到正式读书, 開始了学习大数据的过程... 到今天, 差点儿相同两周过去了, 马马虎虎过了一遍, 感触颇多. 以下简单评…
目前主流大数据存储使用横向扩展(scale out)而非传统数据库纵向扩展(scale up)的方式.因此涉及数据分片.数据路由(routing).数据一致性问题 二级映射关系:key-partition映射,partition-machine映射 首先找到partition(比如hash),然后找machine(路由routing) hash分片方式1:Round Robin 新增一台机器: 需要重新分配数据归属,灵活性差 hash分片方式2:虚拟桶(virtual buckets) hash…
本章主要讲解大数据下如何做数据分片,所谓分片,即将大量数据分散在不同的节点,同时每个存储节点还要做副本备份. 而一般的抽象分片方法是, 先将数据映射到一个分片空间,这是多对一的关系,即一个数据分片区间可能有多条数据 再将分片空间映射到物理node,这也是多对一的关系,即一个物理node对应多个分片空间 具体到实现,通过hash进行分片是比较常见方式,而常见的hash方法是: round robin,hash取模,即通过取模将数据分散到各个node,这种方法跳过了分片空间,数据直接映射到了物理no…
机器学习算法特点:迭代运算 损失函数最小化训练过程中,在巨大参数空间中迭代寻找最优解 比如:主题模型.回归.矩阵分解.SVM.深度学习 分布式机器学习的挑战: - 网络通信效率 - 不同节点执行速度不同:加快慢任务 - 容错性 机器学习简介: 数据并行vs模型并行: 数据并行 模型并行 分布式机器学习范型: 其他情形 MPI:容错性差.集群规模小.扩展性低 GPU:目前处理规模中等(6-10GB) 1. 同步范型(严格情形每轮迭代进行数据同步) 快等慢,计算资源浪费:网络通信多 eg:MapRe…
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:…
基本上是hash实用的各种举例 布隆过滤器 Bloom Filter 常用来检测某个原色是否是巨量数据集合中的成员,优势是节省空间,不会有漏判(已经存在的数据肯定能够查找到),缺点是有误判(不存在的数据可能也会被找到). 应用场景有,chrome进行恶意的url判断,爬虫判断爬取过的url,缓存使用BF进行海量数据查找,比特币使用BF对历史交易进行验证. 基本思想是,首先有个位数组,长度为m,将数据a通过n个hash函数进行计算,每个hash得到的结果x 在[1,m]区间,将x作为一个索引,索引…
架构设计是一门艺术,对架构的掌握要通过多看,多学,多交流,多积累,从实战架构上总能吸收到很好的营养,这边书虽然 (一).hadoop技术处理电信行业的上网日志 根据上网的url或未知url爬取内容,进行分类,根据模型统计出个人喜好,从何精准营销. 经典hadoop应用分层: 接口层:负责与外部数据的交换 数据层:分布式大数据处理平台 资源层:类似ISSA,实现对物理资源的自动部署和动态扩展 功能层:流程,调度,监控,元数据管理,安全等 应用层:词库分类,分类索引,负责应用功能的具体算法 展示层:…