lanceyan

观澜而索源 化繁为简 化简为易

2014年9月16日

数据挖掘-分词入门

正文内容加载中...

posted @ 2014-09-16 09:01 lanceyan 阅读(297) 评论(0) 推荐(0) 编辑

2014年3月31日

搭建高可用mongodb集群(四)—— 分片

摘要: 按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的。而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来解决这个问题。传统数据库怎么做海量数据读写?其实一句话概括:分而治之。上图看看就清楚了,如下 taobao岳旭强在infoq中提到的 架构图:上图中有个TDDL,是taobao的一个数据访问层组 阅读全文

posted @ 2014-03-31 09:42 lanceyan 阅读(1743) 评论(9) 推荐(11) 编辑

2014年2月18日

搭建高可用mongodb集群(三)—— 深入副本集内部机制

摘要: 在上一篇文章《搭建高可用mongodb集群(二)—— 副本集》介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧!副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点。官方说副本集数量最好是奇数,为什么?mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性?mongodb的故障转移会不会无故自动发生?什么条件会触发?频繁触发可能会带来系统负载加重?Bully算法mongodb副本集故障转移功能得益于它的选举机制。选举机制采用了Bully算法,可以很方便从分布式节点中选出主节点。一个分布式集群架构中一般都有一个所谓的主节 阅读全文

posted @ 2014-02-18 13:41 lanceyan 阅读(1862) 评论(2) 推荐(6) 编辑

2013年12月30日

搭建高可用mongodb集群(二)—— 副本集

摘要: 在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》提到了几个问题还没有解决。主节点挂了能否自动切换连接?目前需要手工切换。主节点的读写压力过大如何解决?从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?这篇文章看完这些问题就可以搞定了。NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能。这篇文章主要介绍副本集:mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式,点击查看,如图: 阅读全文

posted @ 2013-12-30 09:29 lanceyan 阅读(4624) 评论(7) 推荐(8) 编辑

2013年11月18日

搭建高可用mongodb集群(一)——配置mongodb

摘要: 在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。NOSQL有这些优势:大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制。高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病。高性能,Nosql通过简单的key-value方式获取数据,非常快速。还有NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多。灵活的数据模型,NoSQL无需事先为要存储的数据建立字段,随时 阅读全文

posted @ 2013-11-18 09:26 lanceyan 阅读(5258) 评论(5) 推荐(12) 编辑

2013年9月9日

海量数据相似度计算之simhash短文本查找

摘要: 在前一篇文章 《海量数据相似度计算之simhash和海明距离》 介绍了simhash的原理,大家应该感觉到了算法的魅力。但是随着业务的增长 simhash的数据也会暴增,如果一天100w,10天就1000w了。我们如果插入一条数据就要去比较1000w次的simhash,计算量还是蛮大,普通PC 比较1000w次海明距离需要 300ms ,和5000w数据比较需要1.8 s。看起来相似度计算不是很慢,还在秒级别。给大家算一笔账就知道了:随着业务增长需要一个小时处理100w次,一个小时为3600 *1000 = 360w毫秒,计算一下一次相似度比较最多只能消耗 360w / 100w = 3.6毫 阅读全文

posted @ 2013-09-09 07:32 lanceyan 阅读(1411) 评论(5) 推荐(2) 编辑

2013年8月26日

海量数据相似度计算之simhash和海明距离

摘要: 通过采集系统我们采集了大量文本数据,但是文本中有很多重复数据影响我们对于结果的分析。分析前我们需要对这些数据去除重复,如何选择和设计文本的去重算法?常见的有余弦夹角算法、欧式距离、Jaccard相似度、最长公共子串、编辑距离等。这些算法对于待比较的文本数据不多时还比较好用,如果我们的爬虫每天采集的数据以千万计算,我们如何对于这些海量千万级的数据进行高效的合并去重。最简单的做法是拿着待比较的文本和数据库中所有的文本比较一遍如果是重复的数据就标示为重复。看起来很简单,我们来做个测试,就拿最简单的两个数据使用Apache提供的 Levenshtein for 循环100w次计算这两个数据的相似度。代 阅读全文

posted @ 2013-08-26 07:30 lanceyan 阅读(2152) 评论(5) 推荐(7) 编辑

2013年8月6日

实战低成本服务器搭建千万级数据采集系统

摘要: 上一篇文章《社会化海量数据采集框架搭建》提到如何搭建一个社会化采集系统架构,讲架构一般都比较虚,这一篇讲一下如何实战用低成本服务器做到日流水千万级数据的分布式采集系统。有这样一个采集系统的需求,达成指标: 需要采集30万关键词的数据 、微博必须在一个小时采集到、覆盖四大微博(新浪微博、腾讯微博、网易微博、搜狐微博)。为了节约客户成本,硬件为普通服务器:E5200 双核 2.5G cpu, 4 G DDR3 1333内存,硬盘 500G SATA 7200转硬盘。数据库为mysql。在这样的条件下我们能否实现这个系统目标?当然如果有更好的硬件不是这个文章阐述的内容。现通过采集、存储来说明一下如何 阅读全文

posted @ 2013-08-06 08:52 lanceyan 阅读(4028) 评论(24) 推荐(5) 编辑

2013年7月26日

社会化海量数据采集爬虫框架搭建

摘要: 随着BIG DATA大数据概念逐渐升温,如何搭建一个能够采集海量数据的架构体系摆在大家眼前。如何能够做到所见即所得的无阻拦式采集、如何快速把不规则页面结构化并存储、如何满足越来越多的数据采集还要在有限时间内采集。这篇文章结合我们自身项目经验谈一下。我们来看一下作为人是怎么获取网页数据的呢?1、打开浏览器,输入网址url访问页面内容。2、复制页面内容的标题、作者、内容。3、存储到文本文件或者excel。从技术角度来说整个过程主要为 网络访问、扣取结构化数据、存储。我们看一下用java程序如何来实现这一过程。123456789101112131415161718192021222324252627 阅读全文

posted @ 2013-07-26 09:21 lanceyan 阅读(3761) 评论(11) 推荐(12) 编辑

2013年7月17日

实战做项目如何选择开源许可协议(二)- 开放代码

摘要: 通过《实战做项目如何选择开源许可协议(一)-了解协议》大概知道了有哪些开源协议和各个协议的作用和区别。我们准备把代码开放出去时,需要了解各个代码托管平台如何设置开源协议。目前常用的平台有:googlecode、github、sourceforge、codeplex。下面分别列一下这些平台如何设置开源协议:1、googlecode,google推出的代码托管平台,整体可用还是比较强的,如果不是经常被墙用这个也可以。支持svn、git协议。要在这个上面共享代码,首先需要注册一个google账号,登录。在url输入http://code.google.com/intl/zh-CN/,打开网页后,最下 阅读全文

posted @ 2013-07-17 08:12 lanceyan 阅读(1580) 评论(1) 推荐(5) 编辑

导航