二次开发nutch的恩恩怨怨
今天下午,总算用脚本把自己二次开发的nutch跑起来了。从第一次接触nutch到现在,一年半接近两年的时间了。从开始的一无所知、凑合着用到后来的尝试梳理、阅读源码、放弃使用再到今年的坚定信念来攻克以至今日可以随意的修改满足自己的需求,心理历程不可谓不复杂。
nutch并不是很高深的技术,但是基于hadoop的mapreduce运算不禁让人生畏,敬而远之。我最初做采集的时候即用nutch,后来几经周折还是放弃。nutch是需要linux环境的,如果做二次开发,需要cygwin来模拟linux,这对不太需要的人来说略麻烦;nutch的采集机制是互联网爬虫,这方案对于小范围定向的采集来说,体量过于臃肿,速度也不够迅捷。我做工商数据采集的时候,就痛下决心,放弃了nutch,改用自己写的采集器。现在想来,是壮士断腕,有舍有得,虽然暂时放弃了学习nutch的机会,但加深了对互联网数据挖掘的认知。此后自己独立开发了一套分布式采集、数据分析、数据管理的系统。
去年一年,也看过几次nutch的源码,都是浅尝辄止。因为自己的系统已经相当成熟,就没有深入的研究nutch。当时正是用webdriver用得欢乐的时候,写了很多很酷的程序,学会很多不错的技能。无限怀念那段加班很high的写代码、在办公司做俯卧撑、在会议室用投影仪看视频的时光。
今年上半年以来,对solr等等有了更深入的研究和应用。逐渐认识到搭建一个海量的数据挖掘系统的重要性。其实自己写程序也能做到,但是应对这种庞大而杂乱的数据量,总是会有很多问题出现,这个时候,基于mapreduce的nutch的优势出来了,它就是擅于处理很多很杂的数据。给它个种子,它就没有尽头的按照你说的做下去。加上手头hadoop集群和solr服务器的完善,研究nutch逐渐提上日程。从六七月份断断续续的看,到这个月的深入研读。总算让它为我所用了。目前已经可以随意的对nutch二次开发,下一步是搭建nutch采集集群,形成自己的数据挖掘体系。
当然,这段开发,也让自己认识到有更多的东西需要学习和研究。首当其冲的是mapreduce,其次是mahout以及基于solr相似度的推荐机制。十月份,希望能把这块搞定,至少把mahout搭建起来,大量实战hadoop。
未完待续...