51CTO博客开发
谷歌4亿英镑收购人工智能公司DeepMind,百度目前正推进“百度大脑”项目,腾讯、阿里等各大巨头布局深度学习。随着社会化数据大量产生,硬件速度上升、成本降低,大数据技术的落地实现,让冷冰冰的数据具有智慧逐渐成为新的热点。要从数据中发现有用的信息就要用到数据挖掘技术,不过买来的数据挖掘书籍一打开全是大量的数学公式,而课本知识早已还给老师了,难以下手、非常头大!我们可以跳过数学公式,先看看我们了解数
按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的。而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用
在上一篇文章《搭建高可用mongodb集群(二)—— 副本集》 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧!副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点。官方说副本集数量最好是奇数,为什么?mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性?mongodb的故障转移会不会无故自动发生?什么条件会触发?频繁
在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》 提到了几个问题还没有解决。主节点挂了能否自动切换连接?目前需要手工切换。主节点的读写压力过大如何解决?从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?这篇文章看完这些问题就可以搞定了。NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。NOSQL有这些优势:大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制。高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病。高性能,Nosql通过简单的key-val
在前一篇文章 《海量数据相似度计算之simhash和海明距离》 介绍了simhash的原理,大家应该感觉到了算法的魅力。但是随着业务的增长 simhash的数据也会暴增,如果一天100w,10天就1000w了。我们如果插入一条数据就要去比较1000w次的simhash,计算量还是蛮大,普通PC 比较1000w次海明距离需要 300ms ,和5000w数据比较需要1.8 s。看起来相似度计算不是很慢
通过 采集系统 我们采集了大量文本数据,但是文本中有很多重复数据影响我们对于结果的分析。分析前我们需要对这些数据去除重复,如何选择和设计文本的去重算法?常见的有余弦夹角算法、欧式距离、Jaccard相似度、最长公共子串、编辑距离等。这些算法对于待比较的文本数据不多时还比较好用,如果我们的爬虫每天采集的数据以千万计算,我们如何对于这些海量千万级的数据进行高效的合并去重。最简单的做法是拿着待比较的文本
创业型公司如何使用低成本服务器搭建日均千万级海量数据爬虫架构,需要从目标网站性质、抓取方式、存储类型、存储空间等多方面考虑。技术只有在用有限成本解决了真正生产问题才能效益最大化。谁说,小公司不能玩大数据,走一回。 有这样一个采集系统的需求,达成指标: 需要采集30万关键词的数据 、微博必须在一个小时采集到、覆盖四大微博(新浪微博、腾讯微博、网易微博、搜狐微博)。为了节约客户成本,硬件为普通服务器:E5200 双核 2.5G cpu, 4 G DDR3 1333内存,硬盘 500G SATA 7200转硬盘。数据库为mysql。在这样的条件下我们能否实现这个系统目标?当然如果有更好的硬件不是这个文章阐述的内容。现通过采集、存储来说明一下如何实现
随着BIG DATA大数据概念逐渐升温,如何搭建一个能够采集海量数据的架构体系摆在大家眼前。如何能够做到所见即所得的无阻拦式采集、如何快速把不规则页面结构化并存储、如何满足越来越多的数据采集还要在有限时间内采集。这篇文章结合我们自身项目经验谈一下。我们来看一下作为人是怎么获取网页数据的呢?1、打开浏览器,输入网址url访问页面内容。2、复制页面内容的标题、作者、内容。3、存储到文本文件或者exce
通过《实战做项目如何选择开源许可协议(一)-了解协议》大概知道了有哪些开源协议和各个协议的作用和区别。我们准备把代码开放出去时,需要了解各个代码托管平台如何设置开源协议。目前常用的平台有:googlecode、github、sourceforge、codeplex。下面分别列一下这些平台如何设置开源协议:1、googlecode,google推出的代码托管平台,整体可用还是比较强的,如果不是经常被
在国内大家习惯了使用盗版、破解,看到这种免费的软件也觉得是理所当然的拿来主义,甚至直接封装到自己的商业组件卖出去。如果你正在这样做,马上停下来研究一下使用的这些开源组件的许可协议,不然某一天你会意外收到一封法院的传票。如果你在开发或者准备开发开源软件,但尚对开源许可协议不了解,也看下这篇文章,选择一种开源许可协议保护你的开源软件。
说起敏捷开发,并不是因为敏捷而敏捷。这几年的敏捷开发已经被很多敏捷咨询服务商神话了,这个东西并不是神器,实施了就可以解决所有软件公司的问题,而是要结合自己公司的特点和问题摸索出适合自己的一套模式。大家都知道,创业公司刚开始需要研发出一款产品并且能够使公司赚钱的产品,不过大部分创业公司没有那么容易一下就能做出来,很多公司还没有成功的产品资金链就断掉了,公司也死掉了。我们公司是这样一个状况,有一条产品
如何组建最开始的合伙人团队? 最开始没钱没资源怎么找到好的人才?人才找到了,怎么打造一个团结互助、士气高涨的团队?团队成员参差不齐,如何保证有潜力暂时能力不足的人才不掉队也不影响公司的产品研发?如何保证公司辛苦培养的人才不会流失?
“中国梦”我们习主席上台后就大大倡导。国家领导人有他们的中国梦,创业者也怀揣着创业的梦想。我们张罗好产品就要准备风风火火的大干一番了。合伙人很重要啊,就比如结婚一样,一定要找个好的对象。得有不同兴趣互补、又要有共同爱好、互相可以接受对方的缺点,也有很好的处理分歧的方式。找谁合伙可以看之前一篇 《技术人员如何创业《二》- 合伙人的模式》,这次主要说说我们公司创业的时候怎么去分工。记得公司刚开始成立时
“合伙人”其实从古到今都有,指一帮人聚集在一起干一件大事情,这个事情必须要借助大家的力量一起完成。比如水浒里的一百单八将、西游记里的五人组合。技术创业者刚出来创业一般也都会找合伙人,毕竟一个人搞定不了太多的事情,除非自己做的东西一个人可以搞定,比如开个小店之内的。如何研发一个好的产品参考 技术人员如何创业《一》- 产品及想法 。是不是只要研发出软件产品就可以赚大钱了?那是不可能的,必须要有好的产品
不得不说这是个浮躁的社会,人人在这个社会都想暴富或者成名。在这些引诱的驱使下很多人都脱离了原来的稳定工作创业。前几天看了《中国合伙人》,故事讲到了几个大学生从校园到工作、再到创办了一个伟大的企业,这个故事更加激励了创业大军的壮大。大家都想创业,那我们技术人员怎么创业?也就个人的经验分享一下:1、好的想法、产品构思。2、好的合伙人。三板斧,管理、销售、技术。3、构建强大执行力的团队。产品及想法:什么
如何使用java搭建线程调度框架、并且扩展到分布式,hadoop。平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头。怎么做一套简便的线程开发模式框架让大家从单线程开发快速转入多线程开发,这确实是个比较难搞的工程。 那具体什么是线程呢?首先看看进程是什么,进程就是系统中执行的一个程序,这个程序可以使用内存、处理器、文件系统等相关资源。例如 QQ软件、eclipse、tomcat等就是一个exe程序,运行启动起来就是一个进程。为什么需要多线程?如果每个进程都是单独处理一件事情不能多个任务同时处理,比如我们打开qq只能和一个人聊天,我们用eclipse开发代码的时候不能编译代码,我们请求tomcat服务时只能服务一个用户请求,那我想我们还在原始社会。多线程的目的就是让一个进程能够同时处理多件事情或者请求。比如现在我们使用的QQ软件可以同时和多个人聊天,我们用eclipse开发代码时还可以编译代码,tomcat可以同时服务多个用户请求。。。。。
互联网创业中大部分人都是草根创业,这个时候没有强劲的服务器,也没有钱去买很昂贵的海量数据库。在这样严峻的条件下,一批又一批的创业者从创业中获得成功,这个和当前的开源技术、海量数据架构有着必不可分的关系。比如我们使用mysql、nginx等开源软件,通过架构和低成本服务器也可以搭建千万级用户访问量的系统。新浪微博、淘宝网、腾讯等大型互联网公司都使用了很多开源免费系统搭建了他们的平台。所以,用什么没关
记得刚做javaweb开发的时候被这个编码问题搞得晕头转向,经常稀里糊涂的编码正常了一会编码又乱了。那个时候迫于项目进度大多都是知其然不知其所以然。后来有时间就把整个体系搞了个遍,终于摸通了来龙去脉。在C++的CGI开发时大家喜欢用latin,这个属于字节方式的编码格式,存储mysql节约空间,而C++也是比较容易控制到byte级别的语言。所以经过框架封装基本也问题不大。在Java语言中,要涉及修
前面介绍了创业型软件公司的工作模式,这里详细介绍下如何实施,第一步是先要搭建环境,有了环境才能开展工作。 整个软件项目分为四个环境 开发本地环境、开发环境、测试环境、IDC环境。和传统C++开发不一样的模式是多了第一个开发本地环境。这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发。对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少,这套架构就这个现状做
前端 css架构 js架构 js例子开发 css规范 js规范 交互设计 java
mysql存储在磁盘中,各种天灾人祸都会导致数据丢失。大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的。万一还没有做好备份,数据被误删除了,或者ibdata损坏了怎么办呢?别担心,只要有部分的frm、ibd存在就可以恢复部分数据。 注意: 一、这个是对innodb的数据恢复。myisam不需要这么麻烦,只要数据文件
在创业开始时,也许有一个点子,经过研究调查有市场可行性就开始召集人员开始创业。这个时候一般都是单打独斗,一两个人负责所有的事情,包括产品设计、交互原型设计、网页美工切割、程序开发、功能测试。这个时候基本不用合作,采用独立开发模式,自己搞定保存就可以了。不过也有风险就是硬盘坏了怎么办呢,要知道硬盘是最脆弱的东西了,我一般的话会定期备份硬盘的东西。  
不管是什么程序开发都可能会出现各种各样的异常。可能是程序错误,也可能是业务逻辑错误。针对这个各个开发人员都有自己的处理方式,不同的风格增加了业务系统的复杂度和维护难度。所以定义好一个统一的异常处理框架还是需要的。我们开发框架采用java实现,java中的异常一般分为两种,检查异常和运行时异常。检查异常(checked exception)有可能是程序的业务异常,这种异常一般都是开发人员
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号