本文作者讲述了他们作为独立工程师开展数据挖掘项目的过程,告诉我们运用各种免费或开源工具挖掘数据的成本很低,同时降低了我们想象中的难度,探索精神值得我们学习。
今天各种强大的数据分析工具让我们有能力分析以前想都不敢想的大企业或者大机构的数据。
几周前,我们为Lucky Oyster执行原型技术搜索任务,当时有幸利用一些简单的组件,Common Crawl Data, AWS S3 , 几百行Ruby代码和各种开源软件。 当时的感觉就像在34亿Web 网页里面挖金矿、提取结构化的数据字节然后为近4亿实体内容提供搜索索引。费用是多少?100美元,14小时内完成的。
之前在检验Facebook的硬编码的长度和开放图谱tags的时候,发现Facebook在更广泛的网络里有着深远影响: 22%的网页对Facebook进行了硬编码引用,另外8%网页的集合了开放图谱。
在对结构化数据进行扩散的时候,我们发现Web搜索(Google和Bing)和社交网络之间的战争,实际上是就是内容本身可见性和所有权之间的较量。通常我们认为,像Facebook这样的网页不会指向额外的社会数据,但事实上情况是相反的,社交图谱拥有更多有用的内容和元数据指向更广的网络,而且这些高度结构化的、社交化的内容也是增长最快的,不管是在Web还是社交图谱上。
在Lucky Oyster里,每项工作都有具体的矢量,这样就能创建产品帮助人们辨别、分享、学习、发现网络世界的好东西,包括奔跑地、食谱、登山地、景点,旨在让生活因为网络发现而奇妙。
工作流程:
Lucky Oyster的工作流程非常简单,n个工人、启动任务栏、提取数据后统计到一个主数据收集中心。它使用的工具如下:
Common Crawl Data: 现成的数据集是基于2012年网络抓取,由70万个网络ARC文件组成,每个文件压缩了100M的网络抓取网页,约合34亿记录。这个可以说是最大的网络爬行工具了,而且免费。
AWS S3:Amazon Web Seivices 能很快地把抓取的资料在S3上当做公共数据处理,例如AWS的fabric就能轻松访问ARC文件,无需支付数据转换费用。
AWS Spot Instances:用Common Crawl Data处理10亿条URLs, 需要450美元,但是用 Spot Instances,以处理High-CPU Medium Instance 为例,每小时0.018美元,这为处理Spots省下了不少钱。
Master Queue,一个内存队列处理通常需要10倍的工作人数还不够,但是beanstalkd安装能够在30秒内整合,而且可以以30多种语言显示出来。
Worker Nodes(工作节点):在启动时,每一个工作节点会运行两个相同的流程。每个流程通过主队列、下载和缓冲解压缩导向AWS S3,然后辅助解析ARC文件和爬行记录,而且解析ARC文件的速度也很快,只要电脑CPU不是太差。
Master Data Collection Service(主数据收集中心),一个非常简单的服务区,接受GET和POST请求。分析出来的数据会追加到指定的本地文件夹供以后分析(求和,平均值,减少了密钥和/或值,索引等)。
接下来:
在这上面的工作完成之后,我们还会进行剔除、分析和平行地索引操作,然后把结果结交到一个集群运行的Solr/Lucene。
刚开始我们做这个工作只是为了好奇,但后来整个过程已经成为了 Lucky Oyster的核心,但分享的初衷一直没有变,很多人都在讲处理大数据、挖数据,那就从身边做起吧,试试把你的目光放在30亿网络文件上,花半天时间、100美元都分析好它,感受你分析出来的数据结果。