- 博客(55)
- 资源 (3)
- 收藏
- 关注
原创 如何快速地把HDFS中的数据导入Clickhouse
如何快速地把HDFS中的数据导入ClickhouseClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。之前介绍的有关数据处理入库的经验都是基于实时数据流,数据存储在Kafka中,我们使用Java或者Golang将数据从Kafka中读取、解析、清洗之后写入ClickHo...
2018-11-09 17:17:14 4710
原创 Waterdrop帮你快速玩转Spark数据处理
Waterdrop 是一个非常易用,高性能,能够应对海量数据的实时数据处理产品,构建于Apache Spark之上。
2018-02-28 00:14:38 2918 1
原创 每秒百万级流式日志处理架构的开发运维调优笔记
荣幸之至,我们团队在实时日志分析、搜索项目中曾经应对过百万级的挑战,在这方面有长足的进步。本文以笔记和问答的形式记录了我们曾经遇到过的实际问题及解决方案,而非小白式的大数据科普文章。相信只有真正做过每秒近百万以上的实时日志处理业务,遇到过棘手问题,才能深刻感受我们当时越不过高坎的窘境与解决问题后的狂喜。本文首发于我们的团队博客,文章内容详见:每秒百万级流式日志处理架构的开发运维调优笔记
2017-07-30 20:13:38 1596
原创 为什么容器技术将主宰世界
为什么容器技术将主宰世界由于本文篇幅较长(我竟然写了7千多字),为了帮助你快速理解,我先列出核心思想:先讲一个集装箱改变全球运输业的生动故事,再拿容器技术与集装箱做联系与对比,说明笔者是如何通过集装箱参悟了容器技术的发展命脉 —— Docker实现了应用发布和运行的集装箱化。说说容器技术,尤其是Docker的诱人之处,预测容器技术的未来发展。正文:请允许我先做一个大胆的预测:容器将统治世界
2015-11-03 14:54:04 8402 3
原创 Better ELK, 新浪实时日志分析服务进化
我从2014年初入职新浪后就开始接触实时日志分析相关的技术,主要是ELK(Elasticsearch, Logstash, Kibana),当时是学习+ELK优化,接一些日志,小打小闹。从2015年起,我们正式得把实时日志分析分析作为服务提供给公司的其他部门。今天要给大家分享的是在服务化的道路上,我们的想法,方案和疑问。服务介绍随着实时分析技术的发展及成本的降低,用户已经不仅仅满足于离线分析。目前我
2015-07-15 21:35:49 7357 11
原创 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
Github, FogCreek, Stackoverflow, Foursquare,等公司通过elasticsearch提供搜索或大规模日志分析可视化等服务。博主甄选了以下有用的中英文slides以及blogs或相关的学习网站分享出来, 内容包括分布式索引与搜索服务Elasticsearch, logstash,数据可视化服务Kibana的学习资源,可以极大减少入门ELK的时间成本。
2014-04-15 12:35:01 13685 6
原创 喜欢sublime的N多理由
刚工作的时候,项目组都用UltraEdit,我也随大流。我使用UltraEdit(UE)工作的时间仅有2个月,我对UE的印象一直是不亲切,功能齐全常用的却不多,一些功能与配置在菜单和界面中的位置与我期望的不一样,没有舒适的配色方案等等。 后来用Notepad++ , 大概半年左右。Notepad++功能相对较简单,界面比UE简洁,快捷键用的比较熟练,搭配上多view功能和
2013-01-28 11:59:20 17172 3
原创 python coding style guide 的快速落地实践
机器和人各有所长,如coding style检查这种可自动化的工作理应交给机器去完成,故发此文帮助你在几分钟内实现coding style的自动检查。
2016-01-02 21:37:56 4146
原创 Tutorial: 使用rsyslog向kafka, elasticsearch推送日志
本文介绍了一种简单易行的使用rsyslog向kafka,elasticsearch推送日志的方法;rsyslog的omkafka插件的安装、使用方法;rsyslog的omelasticsearch插件的安装、使用方法。
2015-03-20 17:24:53 5168
原创 Elasticsearch 2014年12月简报
Elasticsearch 1.4.2, 1.3.7发布了, Logstash 1.5.0 Beta 1发布了, Kibana 4 Beta3 发布了,Marvel 1.3.0 发布了, 还有一大堆好内容来袭。
2015-01-30 12:53:33 2182
原创 Elasticsearch 2014年11月简报
Elasticsearch 1.4.0发布了, Elasticsearch 安全工具Shield即将发布, kibana 4 beta 2发布了,The ELK Stack in a DevOps Environment
2014-12-16 15:07:31 1777
原创 读过几百份简历后,我对求职和写简历的新感悟
最近由于帮助朋友做了一些内推工作的缘故,期间阅过几百份应聘研发、数据分析、运营、设计等职位的简历,与HR有过沟通接触,再结合我上次求职的经历,作了一些总结,关于求职和简历。
2014-09-13 16:49:24 2734
原创 github开源项目介绍-使用pygrok轻松解析字符串(log, event..)
Pygroks是一个开源的Python字符串解析库,github地址:https://github.com/garyelephant/pygrok。正如其项目主页所述,它可以用来解析字符串形式的log, event等,将字符串中有用信息提取出来。这个字符串解析库支持正则表达式匹配,它提供了众多预定义的字符串匹配模式,既有正则表达式的超强匹配能力,又有简单的易用性。pygrok底层也是利用正则表达式实现的。
2014-07-26 17:32:52 2606
原创 AWS s3 python sdk code examples
Yet another easy-to-understand, easy-to-use aws s3 python sdk code examples.
2014-05-09 14:36:23 3165
原创 面试你的面试官
* 如果你想找到适合你的公司 * 如果你想找到适合你的职位. 记得面试你的面试官,没错!做出很重要的职业决定前,面试你的所求职的公司及你的面试官,做什么事不重要,跟谁一起做才重要。
2014-01-15 22:14:27 3272 3
翻译 使用Redis bitmaps进行快速、简单、实时统计
getspool.com的重要统计数据是实时计算的。Redis的bitmap让我们可以实时的进行类似的统计,并且极其节省空间。在模拟1亿2千8百万用户的模拟环境下,在一台MacBookPro上,典型的统计如“日用户数”(dailyunique users) 的时间消耗小于50ms, 占用16MB内存。Spool现在还没有1亿2千8百万用户,但是我们的方案可以应对这样的规模。我们想分享这是如何做到的,也许能帮到其它创业公司。
2013-07-31 18:30:50 11582 1
原创 如何判断一个Http Message的结束——python源码解读
HTTP/1.1 默认的连接方式是长连接,不能通过简单的TCP连接关闭判断HttpMessage的结束。以下是几种判断HttpMessage结束的方式:1. HTTP协议约定status code 为1xx,204,304的应答消息不能包含消息体(Message Body), 直接忽略掉消息实体内容。[适用于应答消息]Http Message =Http Header2. 如果请求消息的Method为HEAD,则直接忽略其消息体。[适用于请求消息]Http Message =Ht
2013-07-02 05:31:14 4255
原创 SVN Hook + Python实现commit后自动发送邮件
svn 的hook机制方便了用户根据svn动作自定义一些操作,post-commithook是当用户执行commit后执行的用户自定义操作。如用户commit后,自动调用post-commit hook script群发邮件到项目组。实现过程是Commit后post-commithook 自动调用,发送邮件。 我自己写了一个功能简单的sendmail.py来辅助发送邮件。
2013-05-04 16:46:13 7699 1
原创 浅出C++对象模型——理解构造函数、析构函数执行顺序
本文主要说明对象创建时构造函数的执行顺序,对象成员的初始化顺序;对象销毁时析构函数的执行顺序,对象成员的销毁顺序。 “对象的构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编译器将无法自动执行析构过程。 一个有趣的现象是,成员对象初始化的次序完全不受它们在初始
2013-04-11 21:04:08 10467
原创 用栈实现队列-用队列实现栈
栈的特点:FILO(First In Last Out) 仅能从栈顶插入,删除元素。 最基本的接口包括push() —— 从栈顶压入元素 ,pop()——从栈顶弹出元素 队列的特点:FIFO(First In First Out)
2013-03-07 13:23:58 1814
翻译 版本控制的极佳实践
本文是www.git-tower.com总结的使用Git的最佳实践,其中的大部分实践具有普适性,可用其他版本控制工具SVN,CVS等。 原文:http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_grey.pdf "Best Practice of Version Con
2013-01-14 13:09:31 3043 1
原创 迭代器失效(2)—一个例子
前几天刚写了一篇关于STL迭代器失效的博文(迭代器失效(1)-小心使用STL容器的erase() ),今天又犯了错误,原因是代码结构的复杂性掩盖了迭代器失效的事实。 现把代码层层简化,如下:#include std::vector myVector;void do_something();void handleElement(int val);
2013-01-05 20:01:25 1793 4
原创 迭代器失效(1)-小心使用STL容器的erase()
对于以下代码: my_container.erase(iter); 其中my_container是STL的某种容器,iter是指向这个容器中某个元素的迭代器。如果不是在for,while循环中, 这种方式删除元素没有问题,如果是在for,while中对m_container迭代,删除其中符合条件的所有元素,就可能出现问题。
2012-12-16 17:26:48 18530 3
翻译 C++ 的API 设计指导
原文地址:API Design Principles http://qt-project.org/wiki/API-Design-Principles摘要: 此文为Qt 官网上的API设计(for C++)指导准则,其中有不少原则具有普遍适用性,整个篇幅中有很多示例,是Qt在API设计上的实践。 正文: Qt 一致、易掌握、强大的AP
2012-11-30 22:30:28 7734 2
原创 用代码告诉你为什么努力工作却不能涨薪水
昨天下班在QQ上跟同事说我要去参加公司里的培训。同事:培训完涨工资吗?我:(突发奇想, 用代码告诉他)finish_training();if (false){ raise_my_pay();}同事:哈哈我:回来后,我要努力工作,等着涨工资。同事:你错了,其实是这样的:if (work_hard)
2012-11-07 20:22:20 3134 2
原创 4个月的工作中对软件设计开发的思考
Author : Gary Gao http://garyelephant.megarygaowork[at]gmail.com 关注自动化运维,软件部署自动化1. 运维监控平台的设计:集群的运维监控,需要确保的是将发现问题,记录问题,报告问题,定位问题紧密结合,尤其是对问题的准确定位。在运维监控平台的设计、开发阶段确立准确定位问题的机制,可使系统能够记录问
2012-10-08 20:44:46 2385
原创 以实践的方式学习C++ &(引用)
1.第一个例子:假设:int var1 = 224; //存放var1的值224的内存地址是0x12ABCDEF则以下Code:int var2 = var1; // 将var1的值复制给var2.int& var2 = var1;//var2 是var1 的别名(var2是var1的引用),var1= var2 = 224,var1的值未发生复制,它们的值的地址都是0x12
2012-08-16 09:17:05 1187
原创 linux的各种开发环境的百花齐放害苦了众多开发者
这几天想给金山快盘写一个linux的客户端(主要是面向ubuntu),软件的开发复杂程度远非我想象的那么简单。其实并不是快盘提供的API复杂,而是我所要开发的这个客户端必须面临不同的开发环境,简单来说,仅对ubuntu而言,我就必须面对ubuntu的不同的桌面shell,Gnome还是Unity且不说,桌面shell还有其他重量级,轻量级的如KDE等。而且如Gnome这种不同的版本之间又有一些不同
2012-07-15 14:07:12 1187 2
原创 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列
如何使用Unix/Linux grep命令 ——磨刀不误砍柴工系列 Garygaowork#gmail.com grep在一个或多个文件中查找与模式字符串(pattern)匹配的行,并将搜索的结果打印出来,不会修改原文件内容。使用grep 命令的语法为: $grep [option(s)] pattern [file(s)]
2012-07-11 18:40:26 14547
原创 满足用户需求,创造用户价值-有感于36氪开放日
刚从36氪的线下活动——‘36氪开放日’回来,清华园科技大厦C座2层的国家会议中心里,挤满了人,36氪,腾讯开放平台,风险投资人全都来了,还有9个创业团队以及众多的像我一样的年轻人。 一谈到互联网创业,互联网创业团队,VC,移动应用,交互设计,大家都热情高涨,今天的开放日包括主题演讲和9个创业团队的产品展示。 主题演讲包括腾讯开放平台陈磊的创造价值,开放梦
2012-07-08 21:11:14 1495
原创 如何使用Unix/Linux find命令 ——磨刀不误砍柴工系列
如何使用Unix/Linux find命令 ——磨刀不误砍柴工系列作者:Gary Gao, garygaowork#gmail.comfind 命令是 UNIX 程序员的技能中功能最强大和最有用的命令之一。它通过许多强大的支持方式,让文件查找显示任务变得更加轻松。find命令实例: 1.基于 目录/文件名称/文件类型
2012-05-16 11:22:31 8917
原创 算法复习-递归与分治策略
分治(divide and conquer)策略的基本思想: 将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各子问题的解合并得到原问题的解。大致可以通过如下模式来描述: divide_and_conquer( P ){ if(|P| divide P into smaller subinstan
2012-05-05 20:02:38 1126
原创 图像边缘是什么-从数学的角度出发
图像处理的项目中,要经常用到图像边缘的概念,如图像边缘检测,边缘检测是进行进一步识别的重要步骤。本文是前段时间我去stackoverflow问老外图像边缘与导数的关系时,一个热心人给我的回答。最近比较忙,没时间把它翻译出来,先把原文放了出来,以供欣赏。Paul R has given you an answer, so I'll just add some images t
2012-03-10 19:39:53 2284
原创 精心整理的C语言面试题目
由于最近去找工作,面过了很多题目,想起了当年学习C语言的很多往事。面试回来后精心整理了一些面试题目,并进行了分类, 一是对思路的整理,二是为后来者造福。以下是各种题目:#语法问题:1.用typedef 定义一个包含10个整型的类型。注:typedef int NUMBER[10];NUMBER 声明为含有10个元素的数组类型。NUMBER n;n[0
2012-03-10 19:19:46 31939 8
原创 闲来无事,写了一个比较完整的计算器
数学表达式有三种:前缀表达式,中缀表达式,后缀表达式。中缀表达式就是我们平常见到的,如 4+ 2 * 5 - 7/11 ,这个式子人算起来方便,但是计算机算起来却计算复杂。对于计算机,最好是将此式转换为前缀表达式或后缀表达式后再计算。在写计算器之前,首先要知道一点基本知识:1.中缀表达式转换为后缀表达式举个例子:4+ 2 * 5 - 7/11 这是中缀表达式,它的后缀表达式
2012-02-12 17:03:14 2388 5
原创 图论中的欧拉回路
1.1先说说一笔画定理 1736年,欧拉发表了“一笔画定理”(并且证明了七桥问题的走法根本不存在): 一个图形要能一笔画完成必须符合两个条件,即 A.图形是封闭连通的 B.图形中的奇点(与奇数条边相连的点)个数为0或2。(即图中度为奇数的顶点个数为0或2) 注: 奇顶点: 顶点所连边为奇数的顶点
2012-02-10 08:57:04 4603
转载 如何在21天“真正”学会C++
来自:http://coolshell.cn/articles/2250.html这是时下流行的穿越古装戏吗??没想到程序员也能穿越。
2012-01-30 14:14:13 852
原创 被无穷大和无穷小难道
C语言中,如何表示无穷大,无穷小。无穷大(小)是数学概念,编程中不会出现无穷的东东,所以完全可以用能表示的最大的数,或最大的数来代替。在头文件limits.h中有各种类型的数的最大值,最小值的符号常量定义,便于直接使用,例如变量的初始化。例如: INT_MAX 是int的十进制最大值 INT_MIN 是int的十进制最小值 LONG
2012-01-28 16:39:13 1414
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人