开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)+Redis+Syslog-ng实现日志实时搜索
logstash + elasticsearch +...
View ArticleMdrill:来自阿里的多维快速查询工具
mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目。旨在帮助用户在几秒到几十秒的时间内,分析百亿级别的任意维度组合的数据。mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高性能的,他的底层因使用了索引、列...
View Article关于Pull Request的十个建议
Pull Request 是 Bitbucket、 GitHub等源代码托管系统为了方便开发者之间协作而提供的一个功能,它提供了一个用户友好的 Web 界面来帮助审查人员进行代码审查。开发人员可以通过 GitHub 发出 Pull Requests 要求请求他人将程序拉下来进行代码审查。一个好的 Pull Request...
View ArticleJava开发者写SQL时常犯的10个错误
我十分惊讶的发现,我最近的一篇文章——《 Java开发者写SQL时常犯的10个错误》——最近在 我的博客和 我的合作伙伴DZone上非常的受欢迎。(这篇博客)的流行程度说明了几件事:SQL在专业的Java开发中多么重要。基本的SQL知识被忘掉(的情况)普遍存在。通过 embracing SQL,你就能了解像 jOOQ或 MyBatis这样的以SQL为中心的库正好反应了市场的需要。...
View ArticleMySQL分支的选择:Percona还是MariaDB
在MySQL被Oracle收购以后,越来越多的人对于MySQL的前景表示了担忧,对于开源的MySQL,或多或少对于Oracle自家的数据库产品产生冲击,这个开源免费的MySQL...
View ArticleReact Native通信机制详解
React Native是facebook刚开源的框架,可以用javascript直接开发原生APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得学习,本篇先来看看它最基础的JavaScript-ObjectC通信机制(以下简称JS/OC)。概览React...
View ArticlePARACEL:让分布式机器学习变得简单
在豆瓣,我们常通过机器学习的方式从各种数据中训练出模型,利用这些模型帮助我们理解用户并为大家挖掘出有价值的内容:豆瓣FM的个性化歌曲推荐、书影音的喜欢也喜欢、首页的豆瓣猜等等。早期的时候,单机训练的程序基本就能满足需求。一方面数据量不大,另一方面有的模型算一次可以用很长时间,对性能要求就没有那么高。不过很快,随着豆瓣的壮大,我们有了分布式计算的需求。当时Spark还没有Python接口,豆瓣基于Sp...
View Article基于Dubbo框架构建分布式服务
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,在实时性要求很高的应用场景下,可能希望来自消费方(Consumer)的调用响应时间最短,只需要选择...
View Article如何使用分层存储让 HDFS 变得更高效?
在eBay,我们运转着多个由几千个节点构成的Hadoop集群,提供给成千上万的人使用。在这些Hadoop集群中我们存储了几千PB的数据。我们在本文探讨了如何基于数据使用频率来优化大数据存储。实验表明该方法有效降低了经济成本。Hadoop...
View Article数据中心丢包分析及解决方案
上周对数据中心tcp数据传输的超时重传时间进行了探究,是的,我们可以缩短重传超时时间,但为什么在数据中心内部也会出现丢包呢?下面会对这个问题进行探讨。...
View Article张雨石:微博背后的那些算法
引言微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针对的是用户之间的关系,关注某个人就意味着你成为他的粉丝,而他成为你的好友;@某个人意味着你想要他看到你的微博信息。微博被人们认为是“自媒体”,即普通大众分享与本身相关的“新闻”的途径。最近,有些人使用自己在自媒体上的影响力而盈利的报道屡见不鲜...
View Article如何构建高扩展性网站?
本篇通过阅读《高扩展性网站的50条原则》,总结出以下内容。一方面博主没有实际的架构经验,另一方面知识面也不够宽阔,所以只能系统的总结书中的要点,并根据自己的理解做些归纳。主要内容本书从多个方面围绕高扩展性提出了50条建议,一个高扩展性的网站会随着业务的发展、用户的增加,自由的扩展架构,从而轻松的应付网站的快速发展。下面看看本书的具体内容:化简方程1...
View ArticleOCR:慧眼读世界
作者:微软亚洲研究院首席研究员 霍强 把手机摄像头对准菜单上的法语菜名,屏幕上实时显示出翻译好的中文菜名;将全世界图书馆的藏书转化为电子书;街景车游走于大街小巷,拍摄街景的同时也从街景图像中自动提取文字标识,让地图信息更丰富更准确……这些场景的背后有一个共同的关键技术——OCR (Optical Character Recognition),光学字符识别。...
View Articlelucene MoreLikeThis性能分析
最近使用lucene的MoreLikeThis实现一个小型的推荐系统。语料由短文本构成,本身也还算比较中小等规模:7000w左右(亿级别)的数据量,3G大小的文件。对需要的Field建完索引后的索引文件大小在4G左右。本文只是结合自己的实践列出一些注意事项,以做为参考。一、MoreLikeThis实现原理根据输入文本和要检索的Field,进行like判断时,整个过程如下:提取出terms:分词,判断...
View Article小谈gensim
gensim是一个用于主题分析(LSI/LDA)的工具包。它的强大,在于大量使用了矩阵运算(速度比循环判断快),提供了基本上一整套的主题建模、相似判断、分布式训练、甚至是可以进行相似判断的服务器。十分适合中小语料的主题建模。如果语料过大,或者主题数过大,跑起来还是相当吃力。当然,它支持分布式,如果有许多台机器资源的话,可以考虑搭建相应集群进行训练。gensim的教程已经由笔者进行了翻译,发布在我的g...
View Article玩转HTML5移动页面(动效篇)
作为一名前端,在拿到设计稿时你有两种选择:1.快速输出静态页面2.加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢? 这次就来谈谈一些动画设计的小技巧,能在你时间不多又没有动画想法的时候瞬间让页面增色不少。同时也会谈及移动端H5页面的优化细节与关键点,因此本文章将分为 动效篇和 优化篇。 ====前方高能==== (1)...
View ArticleKafka+Spark Streaming+Redis实时计算整合实践
基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming、Spark SQL、MLlib、GraphX,这些内建库都提供了高级抽象,可以用非常简洁的代码实现复杂的计算逻辑、这也得益于Scala编程语言的简洁性。这里,我们基于1.3.0版本的Spark搭建了计算平台,实现基于Spark Streaming的实时计算。...
View ArticleGo和HTTPS
近期在构思一个产品,考虑到安全性的原因,可能需要使用到 HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP( 使用Golang开 发微信系列)。对HTTPS的了解则始于那次 自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好...
View Articlengrok原理浅析
之前在进行 微信Demo开发时曾用到过 ngrok这个强大的tunnel(隧道)工具,ngrok在其github官方页面上的自我诠释是 “introspected tunnels to localhost",这个诠释有两层含义: 1、可以用来建立public到localhost的tunnel,让居于内网主机上的服务可以暴露给public,俗称内网穿透。...
View ArticleSpark-1.3.1与Hive整合实现查询分析
在大数据应用场景下,使用过Hive做查询统计分析的应该知道,计算的延迟性非常大,可能一个非常复杂的统计分析需求,需要运行1个小时以上,但是比之于使用MySQL之类关系数据库做分析,执行速度快很多很多。使用HiveQL写类似SQL的查询分析语句,最终经过Hive查询解析器,翻译成Hadoop平台上的MapReduce程序进行运行,这也是MapReduce计算引擎的特点带来的延迟问题:Map中间结果写文...
View Article