自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

马云雷的专栏

马云雷的专栏

  • 博客(64)
  • 资源 (3)
  • 收藏
  • 关注

原创 Petabytes scale log analysis at Alibaba:intrastructure/challenge/optimization

hello everyone my name is yunlei. I work at Alibaba Cloud log service team. Today I will share petabytes scale log data analysis at Alibaba group, I will share our experience with presto, the challenges we faced and the optimizations we did for presto...

2021-04-09 14:53:56 403 2

原创 ClickHouse计算速度是如何做到领跑OLAP类产品的

数据分析类产品的发展历史单机数据库时代关系型数据库是发展了很多年的技术,在单机时代,微软的sql server ,甲骨文的oracle RDBMS,IBM的DB2是商业数据库的霸主。但是商业数据库实在太贵了,后来出现了开源的MySQL。阿里则干脆喊出了去IOE的口号。O就是oracle数据库。在数据库上,用户不仅有OLTP的使用需求,也有分析的需求,就是OLAP。但是单机数据库,无论硬件性能还是软件扩展能力,都是有限的。为了应对分析需求,一般采用一些技巧来实现,一般有这几种方式构建CUBE,按照

2021-02-23 20:29:40 871

原创 机器学习和数据挖掘

上图是关于一个数据分析的笑话,就像手里有把锤子,看什么都像钉子。知道些数据分析的技巧,逮着话题就分析。有句话说,只要你拷问数据上百遍,数据总能招供。不过我们可以从里边窥见数据分析的一般性技巧:假设检验,采样,方差分析,相关性分析等等。数据分析,或者说数据挖掘,目的是从大数据中寻找到有趣模式和知识。数据挖掘,使用到了多种技术,包括统计学,模式识别,可视化,机器学习等等。今天我们来探究一下在数据挖掘领域,有哪些算法可以使用。女士品茶和数据分析女式品茶是数据分析领域非常有名且有趣的一个故事。一位女士声.

2020-10-27 21:08:00 7324

原创 深入理解Presto,Presto的内部架构

深入理解Presto本文译自英文书籍<Presto: the definitive guide>Presto权威指南第四章,目前该书的中文翻译版尚未出版,本文摘出书中对Presto内部介绍比较深入的第四章,看过本文对全书感兴趣的同学,请购买英文原版,或等待中文翻译版出版。–2020/08/16在简单了解过Presto和众多的使用场景、并且安装和开始使用她之后,你现在已经准备好了深入探索更多。在本书的第二部分,你会了解到Presto内部的工作机制,并做好准备在生产环境去安装、使用、运行、调优

2020-08-16 15:29:46 2075 1

原创 Presto 任务调度: 任务分配到哪里

在调度任务时,有几个决策点,第一:分配多少个任务,第二:每个任务分配到哪些机器上。要回答这个问题,首先把计算任务做一下分类,在presto内部有4种计算类型的节点:source节点,读源数据的节点,负责读取数据、Map阶段的计算任务。分配的个数由SplitManager根据数据决定。fixed节点,shuffle节点,用于处理reduce任务。比如group by计算,source阶段的数据按照hash发送到fixed节点。分配的个数由hash_partition_count这个session参数决

2020-05-30 22:12:02 1474

原创 Procella@Youtube 把计算加速玩到极致的实时计算引擎

Procella的应用场景在youtue内部,在数据分析领域有4个方面的应用场景:报表和大盘:1000亿数据/天,要求在10ms的延时内完成近实时的计算,主要的计算类型过滤/聚合/set/join内嵌的统计指标,例如视频的浏览人数等等,特点是数据不停的变化,每秒上百万次查询。时序数据监控:特点是query固定,数据量小,可以下采样,旧数据过期,以及一些特有的查询例如估算函数和时序函数。Ad hoc查询:提供给数据科学家,BI分析师等使用的,特点是query比较复杂,且不可预测,要求延时在秒级别处

2020-05-20 21:30:42 1046

原创 Presto Coordinator分布式改造

背景自从上线SQL功能以来,经过两年的时间,随着sls业务的不断增长,每天处理1亿次query,扫描1000,000,000,000,000行日志(没错1000万亿行日志)。业务的增长也给系统带来无形的压力,如何保障在低延时的前提下提供这么大的负载是一个巨大的挑战。挑战之一就是单master架构。在之前的文章中,我介绍过了presto的架构。coordinator是presto中负责query...

2019-11-26 16:22:37 3111 3

原创 Presto内存泄露问题调查

问题背景:sls的线上流量越来越大,S1几乎增长了100%。在杭州region,每隔一段时间,一部分机器Presto就会开始频繁的Full GC,重启后稳定一段时间,然后过一段时间又开始频繁Full GC。Full GC达到一定次数的时候,就发生OOM,进程直接crash。由于Full GC时间长,影响线上的可用性,因此开始投入精力进行调查。查看GC 文件当频繁发生GC时,会在gc文件中打出...

2019-09-17 20:42:18 2077

原创 Presto coordinator的CPU持续上涨,原因竟然是这样

问题背景之前介绍过presto的架构, coordinator是Presto架构中负责调度的master节点。在实际部署中,为了减少该节点的负载,指定node-scheduler.include-coordinator=false,避免把计算任务调度到coordinator节点上。由于Presto进程是常驻进程,而且需要实时的提供在线服务。通常只有在需要升级时,才会通过热升级手段重启进程。于是...

2019-05-20 10:10:37 2063 2

原创 Presto入门: 配置第一个http connector

1. connector在presto中,可以对接多种类型的数据源,今天以http 服务器数据为例,简单介绍如何接入presto。2. 搭建http数据数据源2.1 http数据源的schema在http服务器上,提供一个文件,文件内容是数据源的格式。 一个文件是json格式,顶层是schema的名称,schema类似数据的database。schema之下是一个表的list。每张...

2018-05-10 11:25:42 2388 1

原创 GPU编程模型

GPU简介GPU(graphical processing unit)是显卡内用于图形处理的器件。和CPU相比,CPU是串行执行,而GPU是多个核并行执行。GPU是一个高性能的多核处理器,有很高的计算速度和数据吞吐率。在GPU上的运算能获得相对于CPU而言很高的加速比。第一、第二代GPU出现的时候,GPU不是可编程的[4]。当第三代GPU出现的时候,GPU开始用于图形编程,研究者们给GPU烧制...

2018-03-06 09:36:08 2929

原创 深入理解Presto(2) :Presto查询执行过程

Presto查询执行过程Presto包含三类角色,coordinator,discovery,worker。coordinator负责query的解析和调度。discovery负责集群的心跳和角色管理。worker负责执行计算。presto-cli提交的查询,实际上是一个http POST请求。查询请求发送到coordinator后,经过词法解析和语法解析,生成抽象语法树,描述查询的执...

2018-02-26 23:33:00 13352

原创 深入理解Presto(1) : Presto的架构

简介Presto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。presto之所以能在各个内存计算型数据库中脱颖而出,在于以下几点:清晰的架构,是一个能够独立运行的系统,不依赖于任何其他外部系统。例如调度,presto自身提供了对集群的监控,可以根据监控信息完成调度。简单的数据结构,列式存储,逻辑行

2017-10-12 19:56:49 8401

原创 libeasy原理,架构和使用方法

libeasy 原理、架构和使用方法简介libeasy提供一个处理tcp连接的事件驱动的网络框架。框架本身封装好了底层的网络操作,只需要开发者处理其中的各种事件。本文介绍libeasy的一些实现原理,整体框架,以及使用的样例。本文是经过一系列摸索,以及wireshark抓包,再结合一些互联网上一些仅有的资料整理完成,如有理解不当的地方,烦请指出。基本概念libeasy 的基本概念有:easy_con

2017-07-20 09:05:07 3713 2

原创 如何修复Kindle频繁自动锁屏和解锁

12年入手kindle dxg,用了几年年,看pdf的利器,感觉很不错,2016年夏天的时候,kindle突然出现频繁的锁屏和解锁。在网上搜了一下,只有在贴吧找到一个类似的问题,但是没有解决方案,联系amazon的客服,客服也没办法解决。没办法,只要自己捣鼓。刚开始的时候,从网上看到一些信息说kindle的皮套感应会受到磁铁的影响自动锁屏,于是把kindle拆开了看,把边上的一些线全都拔掉

2017-07-10 20:06:45 11984 3

原创 do while 循环的执行逻辑

do while 相对于while循环而言,平时用的非常少,因此有一些问题也非常的容易出错。比如,在do while的循环体中,假如有一个continue,那么你觉得这个continue会跳转到do呢?还是条传到while呢?答案是跳转到while,直接执行while里边的判断条件

2016-03-29 15:16:23 930

原创 facebook静态代码检查工具开源了!

以前一直想写个静态代码的检查工具,能够根据语法分析自动找出内存泄露的问题,今天发现facebook开源了这样一个工具,可以检查Java , Object c  和c代码,美中不足的是不支持C++。facebook的这款工具叫Infer,用于在发布移动应用之前对代码进行分析,找出潜在的问题。目前 Facebook 使用该工具来分析 Facebook 的 App,包括 Android 、iOS

2015-06-15 20:08:54 1540 2

原创 使用wordpress搭建博客过程中遇到的一些问题

对于一个新手而言,第一次使用wordpressda'jia

2014-09-06 13:51:47 591

原创 wget获取一个url的完整目录

wget -r -l1 -np -nd http://your_url/your_folder/

2013-10-18 10:22:43 3860

原创 libcurl在ipv6被禁止的情况下的性能下降

最近我们的集群业务量增加了上百T。然后发现集群的cpu使用率和load上升的非常高,load最高达到了60。团队分析了性能原因,发现发送结果数据到另一个集群的逻辑消耗了大部分的cpu,于是对这部分发送逻辑进行了优化。在优化发送逻辑后,cpu下降了一半,load也下降了。但是效果并不明显。有一个机器,load仍然很高。持续的调查发现,在load较高的机器上出现间隔出现多个modprob -q — n...

2013-08-12 19:28:45 2087

原创 巧妙的设计stl中的比较函数,以避免不必要的cpu开销

在stl algorithm.h中,常利用一些排序操作,比如通过vector实现一个堆。如果堆的每个元素是自定义结构,也就是,自己实现的类作为堆的基本元素,那么make_heap和push_heap,pop_heap就需要开发者提供自己的比较函数。bool __cmp(value &v1 ,value & v2).在stl的内部实现中,当这个_cmp判定为true时,就需要调整heap,所

2013-08-12 19:27:25 590

原创 syslog 引发死锁

主线程在写 syslog,同时在信号处理函数中也在写syslog,当主线程在写的时候,如果同时触发了信号,那么将会导致死锁。$pstack 4289#0 0x00000036768df9ee in __lll_lock_wait_private () from /lib64/libc.so.6#1 0x000000367688d0dd in _L_lock_1685 () from /

2013-08-12 19:26:49 3885

原创 内存检查工具

内存检测工具主要用于检测程序的堆栈错误。一般的检测方法是通过加magic number来表示正确的内存信息。如果magic number被写坏,那么就表示内存错乱了。1编译选项:-fstack-protector & -fstack-protector-all-fstack-protector在函数的stack上加一个magic number,如果buffer ov

2013-08-12 19:25:55 998

原创 String copy on write 引发的线程不安全

一个string对象的读操作是线程安全的么?答案是否定的。读取一个string在某些情况下是线程不安全的。这是为什么呢?原因就是string在优化存储空间时采用的策略cow。什么是cow     Cow 是copy on write的缩写。String 为了减少内存拷贝,当两个string对象的内容相同时,他们指向同一块内存空间,并通过引用计数来表示有多少对象引用了这块内存。当其中

2013-06-26 20:33:49 1175

原创 rpm打包和yum安装,以及安装后自启动

rpmbuild 可以把源文件或者二进制文件打包成rpm包,rpm包可以放到源上进行分发。执行rpmbuild --showrc  |grep topdir,可以找到rpmbuild 执行的根目录,如果仅仅希望给把二进制文件打包成rpm包,那么把二进制文件放到  $topdir/BUILD/ 目录下。编写${binary}.specSummary: clientName:

2013-03-18 15:29:45 1954

原创 fork 和 sigchld 坑

最近有个项目,一个deamon进程,一个worker进程。deamon 进程会捕获SIGCHLD信号如果worker进程down掉了,deamon会收到这个信号并且重新fork worker进程。最近发现一个问题是 deamon进程fork了好几个worker进程。一度怀疑是不同的linux内涵对信号处理不同。后来我发现如果worker进程调用了system函数,system会fork一个子进程,...

2013-03-13 14:06:38 811

原创 友元类

error:      is private如果添加了friend之后,还是报错的话。不妨看看是不是名字空间搞错了。

2012-07-10 11:15:01 2073

原创 kindle dxg 作为电脑扩展显示器

kindle的显示器采用e-ink技术,相对于液晶屏而言,其最大的好处是不伤眼。本文把kindle dxg作为电脑的显示器。基本步骤1:越狱。越狱的文件在:http://www.mobileread.com/forums/showpost.php?p=973688&postcount=1把越狱用的文件放在kindle 根目录。然后seting-》menu-》update y

2012-06-17 21:00:33 13718 7

原创 ubuntu 12.04 install java

for some reason , the java can not be installed like before.in this version of ubuntu, java should be installed like this:1:sudo apt-add-repository ppa:flexiondotorg/java2:sudo apt-get update

2012-06-09 13:40:26 525

原创 error LNK2005: * already defined in *.obj

这个错误,一般是重复引用造成的。可以考虑两点。1:头文件是否有#ifndef控制2:头文件中是否有函数的定义或者全局变量的定义。

2012-05-03 22:51:59 655

原创 [usaco] 5.4.4 Betsy's Tour

好久没作usaco了。过了个年,人都懒了。Betsy's TourDon Piele A square township has been divided up into N2 square plots (1 <= N <= 7). The Farm is located in the upper left plot and the Market is located in the

2012-02-25 14:44:59 967

原创 java 反编译

偶然发现了这么一个反编译的插件:jadeclipse。

2011-11-14 23:02:09 309

原创 键盘钩子

最近在做一个项目,要求程序在后台运行是能够拦截到按键信息。但是,在ddl里边给对话框发送消息总是不成功。检查了一天,看了很多人写过的程序,还是不得要领。最后突然想到,sendmessage和postmessage的作用是一样的,只不过前者是阻塞,后者异步而已。于是换成了后者,果然成功了。

2011-10-28 19:29:02 421

原创 面向对象的几个问题

面向对象的几个问题。1.如果是虚函数override的话,两个函数的原型必须完全的一致,包括函数名字,参数数目和类型,还有返回类型以及是否是const。  如果两个函数,除了返回类型之外都完全一致的话,那么会出想编译错误。如果参数或者const不一致,那么就是两个函数。父类指针查找的时候是不会找到子类的。2.如果不是虚函数,当子类的某个函数和父类的函数名字一样时,那么父类的这个函数就会

2011-10-25 19:57:29 372

原创 [usaco]5.4.5 Big Barn题解

5 Big BarnA Special TreatFarmer John wants to place a big square barn on his square farm. He hates to cut down trees on his farm and

2011-10-08 10:19:28 474

原创 c、c++、java的区别

c++和java的区别一群写机顶盒程序的人在用c++写程序的时候感觉C++太过于琐碎,于是发明了java1:c+程序直接运行于OS上;java程序运行于jvm上2:执行效率,c++明显比java要快很多,因为java是通过运行在虚拟机上的。 具体事例请查看上一篇博客,那个程序是java写的。3:java一次编译,处处运行。c++换了平台就得重新编译。4:垃圾回收机制。c++

2011-10-07 23:18:03 646

原创 [usaco]5.3.4强联通分支,双联通分支 Network of Schools

Network of SchoolsIOI '96 Day 1 Problem 3 A number of schools are connected to a computer network. Agreements have been developed among

2011-10-07 16:56:41 622

原创 [usaco]5.3.2 Milk Measuring 动态规划

Milk MeasuringHal Burch Farmer John must measure Q (1 <= Q <= 20,000) quarts of his finest milk and deliver it in one big bottle to a cu

2011-10-06 13:21:38 919

原创 【usaco】4.4.2最小割集PROB Pollutant Control

Pollutant ControlHal Burch It's your first day in Quality Control at Merry Milk Makers, and already there's been a catastrophe: a shipme

2011-09-22 22:52:41 1072

原创 [usaco] 4.4.1PROB Shuttle Puzzle

Shuttle PuzzleTraditional The Shuttle Puzzle of size 3 consists of 3 white marbles, 3 black marbles, and a strip of wood with 7 holes. T

2011-09-20 23:28:07 35346

学习新蒙文,包括短语。汉语表音

学习新蒙文.doc 学蒙文 新蒙文 学蒙文找csdn

2009-02-22

新蒙文教程阅读材料.PDF

新蒙文教程阅读材料.PDF 要想学习新蒙文就到这里 以后我会在这里持续发表哟

2009-02-22

蒙古语句子结构系统.

蒙古语句子结构系统. xueximengguyudehaoshu

2009-02-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除