大数据系统
文章平均质量分 63
smartcat2010
这个作者很懒,什么都没留下…
展开
-
ZIP压缩原理
ZIP压缩原理2种数据:原字面;距离+长度;(+各自标志,表示是字面还是距离长度)滑动窗口,只在之前32KB范围内找重复;一是符合局部性再次重复原理,二是为了减少扫描时间,三是为了减少“距离”的个数;...转载 2020-03-07 12:06:12 · 786 阅读 · 0 评论 -
分布式系统的CAP理论
分布式系统的CAP理论2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论概述一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区...转载 2020-02-26 18:00:40 · 248 阅读 · 0 评论 -
函数式编程
函数式编程思维原创 2020-01-22 21:00:08 · 98 阅读 · 0 评论 -
Spark好在哪里
RDD的几种存储方式的选择RDD是内存迭代,MapReduce每轮迭代要读写磁盘;(Spark多个任务之间数据通信是基于内存,而Hadoop是基于磁盘。)通过记录数据集的一些列转换方式来执行这些task,这样一来,某一分片若是丢失,则可以从该RDD的记录中去就近恢复该分片,而不是从头执行!1、RDD是一个只读的、有分区的分布式数据集。其分类主要有两种:transformations和a...原创 2020-01-22 18:43:40 · 303 阅读 · 0 评论 -
Linux内核的文件Cache机制
Linux内核的文件Cache机制文件 Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分。本文详细介绍了 Linux 内核中文件 Cache 管理的各个方面,希望能够对开发者理解相关代码有所帮助。http://www.ibm.com/developerworks/cn/linux/l-cache/ http://www.cnblogs.com/MYSQL...转载 2020-01-21 19:45:38 · 629 阅读 · 0 评论 -
百度PaddlePaddle
转载 2019-12-19 09:27:06 · 203 阅读 · 0 评论 -
常见性能优化策略的总结
http://www.cnblogs.com/ajianbeyourself/p/6132546.html缓存被“击穿”问题 (redis.set功能,为了robust,特别是要设置锁的过期时间!)对于一些设置了过期时间的key,如果这些key可能会在某些时间点被超高并发地访问,是一种非常“热点”的数据。这个时候,需要考虑另外一个问题:缓存被“击穿”的问题。概念:缓存在某个时间点...转载 2016-12-05 14:27:23 · 443 阅读 · 0 评论 -
红黑树 VS 平衡二叉树
红黑树 VS 平衡二叉树红黑树的高度只比高度平衡的AVL树的高度()仅仅大了一倍AVL树为了维持这种高度的平衡,就要付出更多代价。每次插入、删除都要做调整,就比较复杂、耗时。所以,对于有频繁的插入、删除操作的数据集合,使用AVL树的代价就有点高了。红黑树只是做到了近似平衡,并不严格的平衡,所以在维护的成本上,要比AVL树要低。所以,红黑树的插入、删除、查找各种操作性能都比较稳定。对...转载 2019-12-11 16:27:16 · 232 阅读 · 0 评论 -
B树和Clustered/Non-Clustered index
B-Tree就是B树,"-"是横杠,不读作"减"(1)树中每个结点至多有m 棵子树(注:m指的是树的阶);(2)若根结点不是叶子结点,则至少有两棵子树(注:根节点至少有两个儿子);(3)除根结点之外的所有非叶子结点至少有p个子节点(,为向上取整。);(4)所有的非叶子结点中包含以下数据:(n,P0,K1,P1,K2,…,Kn,Pn); K是Key, P是指针B+Tree的非底...原创 2019-12-11 15:29:19 · 127 阅读 · 1 评论 -
SSE/AVX SIMD编程
SIMD函数的Intel官网AVX和AVX2指令的介绍我调用的是函数,不是汇编指令(special C functions calledintrinsic functions)每个函数实际调用的可能不止1个指令,例如_mm256_fmadd_ps后面实际调用了3个函数函数命名规则:_mm<bit_width>_<name>_<data_type>...转载 2019-12-08 20:43:30 · 1986 阅读 · 0 评论 -
RingAllreduce和NCCL
(2017年)百度将高性能计算引入深度学习:可高效实现模型的大规模扩展RingAllreduce;适用于单机多卡/多机多卡;关键在于认识到机器硬件拓扑,然后根据拓扑去构建使得最大的边延迟最小的方案;(Step1, Step2, Step3那种AllReduce,在多机通过交换机互联情况下,也可以和机器数目无关);最后再进行5轮类似的传输,所有GPU上就都有了各段...原创 2019-11-27 20:03:32 · 2756 阅读 · 0 评论 -
每个计算机工程师都应该知道的数字列表(Jeff Dean)
L1 cache reference: 0.5 nsBranch mispredict: 5 nsL2 cache reference: 7 nsMutex lock/unlock: 100 nsMain memory reference: 100 nsCompress 1K bytes with Zippy: 10,000 nsSend 2K bytes over 1 G...原创 2019-11-20 17:17:33 · 291 阅读 · 0 评论 -
Tensorflow论文解读
TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems计算图里的node,有0~N个输入,有0~N个输出。计算图里的edge,分为Tensor-edge和Special-edge;Tensor的大小和类型可以在计算图构建时指定或者自动推导出来;Special-edge是控制依赖,没有数据流动。...原创 2019-11-15 11:35:36 · 1473 阅读 · 1 评论 -
当前深度神经网络模型压缩和加速都有哪些方法
本期推荐的论文笔记来自 PaperWeekly 社区用户@yanjoy。本文全面概述了深度神经网络的压缩方法,主要可分为参数修剪与共享、低秩分解、迁移/压缩卷积滤波器和知识精炼,论文对每一类方法的性能、相关应用、优势和缺陷等方面进行了独到分析。关于作者:小一一,北京大学在读硕士,研究方向为深度模型压缩加速。个人主页:http://yanjoy.win■论文 | A Survey of ...转载 2019-11-14 19:57:36 · 501 阅读 · 0 评论 -
MXNet设计和实现简介(论文笔记)
MXNet论文_2015年Tensorflow慢一倍的原因:其使用的cuBLAS和cuDNN版本较低;MXNet最大的优点:节省内存/显存MXNet设计和实现简介 浅嵌入,命令式编程 深嵌入,声明式编程 如何执行 a=b+1 需要b已经被赋值。立即执行加法,将结果保存在a中。 返回对应的计算图(computation graph),我们可以之后对...转载 2019-11-14 17:08:24 · 441 阅读 · 0 评论 -
Tensorflow学习
从系统和代码实现角度解析TensorFlow的内部实现原理架构图:代码组织结构图:Tensorflow/core目录包含了TF核心模块代码。 public: API接口头文件目录,用于外部接口调用的API定义,主要是session.h 和tensor_c_api.h。 client: API接口实现文件目录。 platform: OS系统相...原创 2017-02-28 23:44:34 · 589 阅读 · 0 评论 -
搜索引擎架构
搜索引擎之技术架构精简版最后的“网页排序”,应该是考虑了“链接”(也就是网页重要度高的放前面)和“相关性”网页去重:SimHash;链接分析:PageRank求网页重要度;Cache系统:常用Query的结果缓存;...转载 2019-11-02 23:03:57 · 246 阅读 · 0 评论 -
CUDA-aware MPI
CUDA-aware MPIhttps://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#changes-from-previous-version例子:OpenMPI用处:透明的把Host主存orGPU内存里的数据发送到对方Host主存orGPU内存; (省去了手动在Host和GPU之间Copy)UVA,统一地址...原创 2019-11-02 17:25:13 · 1451 阅读 · 0 评论 -
DSSM线上预测速度优化案例
–输入:1个query和100个Doc-title•query经分词后的term•每个文档的title经分词后的term–输出:•每个文档的title和query的特征向量四个相似度–DNN 输入层相似度–DNN前馈输出后相似度–CNN输入层相似度–CNN前馈输出后相似度通过每一步的计算量分析(也可以用Visual Profiler), 得到:1. ...原创 2019-03-28 21:22:24 · 899 阅读 · 0 评论 -
Lucene
GeoHash: "经度,纬度,经度,纬度,..." 交替编码,经度[-180, +180]首次划分为"[-180,0)编码为0"和"[0,+180]编码为1",纬度[-90,+90]首次划分为"[-90,0)编码为0"和"[0,+90]编码为1";大体上,2个geohash的前缀相同的位数越多,距离约近些;前缀相同的位数,决定了他们落在了哪一个块里面。Lucene: 词典文件(存放ke...原创 2019-07-31 16:59:46 · 227 阅读 · 0 评论 -
Spark学习备忘
号称的比MapReduce速度提升20倍,是在训练数据能够persist到内存的情况下做的;如何选择一种最合适的持久化策略 默认情况下,性能最高的当然是MEMORY_ONLY,但前提是你的内存必须足够足够大,可以绰绰有余地存放下整个RDD的所有数据。因为不进行序列化与反序列化操作,就避免了这部分的性能开销;对这个RDD的后续算子操作,都是基于纯内存中的数据的操作,不需要从磁盘文件中...原创 2016-10-15 00:05:49 · 385 阅读 · 0 评论 -
参数服务器——分布式机器学习的新杀器
在大规模数据上跑机器学习任务是过去十多年内系统架构师面临的主要挑战之一,许多模型和抽象先后用于这一任务。从早期的MPI,到后来的Hadoop,乃至于目前使用较多的Spark,都曾被广泛应用于大规模机器学习处理任务。John Langford曾经在他的博客(机器学习领域最好的博客之一)上总结和对比了主流的分布式机器学习框架的抽象[1]:MPI Gradient Aggregation:主要缺转载 2016-12-01 21:25:13 · 14182 阅读 · 2 评论 -
分布式系统,你真的了解吗?
承载量是分布式系统存在的原因当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天有1000万个用户访问你的网站时,无论你使用什么样的服务器硬件,都不可能只用一台机器就承载的了。因此,在互联网程序员解决服务器端问题的时候,必须要考虑如何使用多台服务器,为同一种互联网应用提供服务,这就是所谓“分布式系统”的来源。然而,大量用户访问同一个互联网业务,所造成转载 2016-12-13 11:36:06 · 546 阅读 · 0 评论 -
vector clock 向量时钟 & 一致性哈希
向量时钟:http://blog.csdn.net/yfkiss/article/details/39966087http://blog.sina.com.cn/s/blog_61af23120100vlar.html (讲的更清楚)适用于同一份数据会在所有节点上存储副本的情况;1个节点收到写请求时,备份到W个节点上(包括自己)才算成功写入(后续要备份到所有节点上);1个用户读时,...原创 2016-12-09 16:19:25 · 689 阅读 · 0 评论 -
Kafka剖析(一):Kafka背景及架构介绍
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的应用以及发展,“Kafka剖析”专栏将会从架构设计、实现、应用场景、性能等方面深度解析Kafka。背景介绍Kafka创建转载 2016-12-19 21:15:05 · 749 阅读 · 0 评论 -
分布式消息系统:Kafka
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消转载 2016-12-22 21:01:30 · 253 阅读 · 0 评论 -
ps-lite源码阅读笔记
- worker.hworker的用户API;SyncOpts:std::vector<int>deps : dependencys, 这些timestamp的操作都完成后,本操作才会被执行;std::function<void()> callback : 本操作执行完后,该callback即被立即调用;是取代Wait的方式;由KVWorker的接收线程调...原创 2016-12-11 12:11:13 · 2644 阅读 · 1 评论 -
kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
一、入门 1、简介 Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kaf转载 2016-12-20 13:25:07 · 331 阅读 · 0 评论 -
Mesos简介
http://dongxicheng.org/apache-mesos/meso-architecture/转载 2017-01-19 22:43:39 · 295 阅读 · 0 评论 -
《App后台开发运维和架构实践》读书笔记 - Redis
7.1 Redis简介- <Key-Value>内存缓存- 可持久化到磁盘- 支持多种数据类型:string, hash, list, set, sorted set, bitmap, hyperloglog- Redis的所有操作都是原子操作;Redis支持几个操作合并后的原子性操作,即事务App端本身有一层缓存(网络不可用时威力大);后台用Redis做一层缓存;...转载 2017-12-09 23:08:49 · 240 阅读 · 0 评论 -
Redis
我的另一篇:简要介绍单线程模型,避免了加锁,避免了线程切换开销,降低了数据结构开发难度(不用线程安全数据结构了)。缺点:一个命令如果执行时间较长会阻塞其他命令。各个数据类型应用场景:类型 简介 特性 场景 String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M --- Ha...原创 2019-07-10 11:47:05 · 164 阅读 · 0 评论 -
ElasticSearch
概率检索模型和BM25BIM模型的推导:从P(R|D,q)/P(NR|D,q)推导,用的贝叶斯公式,最后转换成P(D|R,q)/P(D|NR,q), 再根据词项独立假设, 把P(D|R,q)拆分成P(qt1|R,q)*(1-P(qt2|R,q))*P(qt3|R,q)*..., (假设D里面包含查询词1和3,不包含查询词2) P(qt1|R,q)是指query词1在相关文档里的出现概率,(1-...原创 2019-07-15 17:38:16 · 255 阅读 · 0 评论 -
《MongoDB权威指南》读书笔记
区分大小写;区分类型(3和"3"是不同的value); key-value是有序的;值可以是null; 数组里可以是不同类型的元素;ObjectId前4个字节是秒,所以"大致"会按创建时间顺序排序的;同类型的数据放到一个集合中,有利于查询速度快,磁盘存放更紧密,建索引效率更高;设计原则:能交给客户端驱动做的事,就不交给服务器实现;因为扩展客户端比扩展服务器要容易很多;mongoex...原创 2019-07-24 11:34:31 · 360 阅读 · 0 评论 -
《深入理解Elasticsearch》读书笔记
第一章 简介segment被创建后不会再被修改;文档删除后,删除信息单独保存在一个文件中,segment本身并没有被修改;segement合并期间,无用信息会被删掉,比如被删除的文档;norm: 存储文档的归一化结果,基于文档的加权值(boost)计算得出;term vector: ?doc values: 应对分组、排序、聚合,建立的正排索引;(文档转为倒排索引,查询串转为用...原创 2019-07-21 10:17:01 · 219 阅读 · 0 评论 -
分库分表
数据切分,顾名思义,就是数据分散,将一台主机上的数据分摊到多台,减轻单台主机的负载压力有两种切分方式:1.分库,即按照业务模块分多个库,每个库中的表不一样2.分表,按照一定的业务规则或者逻辑将数据拆分到不同的主机上,每个主机上的表是一样的,这个有点类似于Oracle的表分区。 分库又叫垂直分区,这种方式实现起来比较简单,重要的是对业务要细化,分库时候要想清楚各个模块业务之间的交转载 2016-10-12 15:38:31 · 481 阅读 · 0 评论